前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >dom4j解析XML常用方法

dom4j解析XML常用方法

作者头像
乱码三千
发布2021-07-29 15:57:06
8670
发布2021-07-29 15:57:06
举报
文章被收录于专栏:乱码三千乱码三千

基本使用

//读取xml
SAXReader reader = new SAXReader();  
Document   document = reader.read(new File("input.xml"));  
// 获取根节点
Element root = document.getRootElement();      
// 获取孩子节点
Iterator<Element> it1 = root.elementIterator();
// 获取属性
Iterator<Attribute> attributes = ele.attributeIterator();
/*
以上两个获取孩子节点和属性都是获取迭代器, 通过it.hasnext()方法可以遍历得到所有的节点和属性.
*/
// 获取节点名
ele.getName()
// 获取节点值
ele.getText()
// 获取属性名
ele.getBName
// 获取属性值
ele.getValue()    
// 设置文本
ele.setText("张三");
//设置属性
ele.addAttribute("show", "yes");
//添加注释
ele.addComment("This is a test for dom4j ")
// 删除子节点
ele.remove(element);

创建XML

public class CreateXML {
    public static void main(String[] args) throws Exception {
        // 创建文档对象
        Document document = DocumentHelper.createDocument();
        
        // 创建根节点
        Element root = document.addElement("root");
        
        // 添加节点信息
        Element auther1 = root.addElement("auther")
                .addAttribute("name", "Tom")        // 属性
                .addAttribute("loation", "UK")      
                .addText("Tom Wang");               // 节点内容
        
        Element auther2 = root.addElement("auther")
                .addAttribute("name", "Ted")
                .addAttribute("loation", "USA")
                .addText("Ted Chen");
        
        // 输出到xml文件
        FileWriter out = new FileWriter("src/new.xml");
        document.write(out);
        out.close();
    }
}
输出的内容为
<!--new.xml-->
<?xml version="1.0" encoding="UTF-8"?>
<root>
    <auther name="Tom" loation="UK">Tom Wang</auther>
    <auther name="Ted" loation="USA">Ted Chen</auther>
</root>

修改XML

// 创建xml解析器对象reader
SAXReader reader = new SAXReader();
// 加载xml文件, 获取document对象
Document document = reader.read("src/test_xml/first.xml");
//选定节点属性集 xpath写法
List arrList = document.selectNodes("/books/book/@show")
Iterator arrIter = arrList.iterator();  

//选定节点集
List list = document.selectNodes("/books/book/title")
Iterator texIter = list.iterator();
//修改节点属性
while (arrIter.hasNext()) {  
    Attribute attribute = (Attribute) iter.next();  
    if (attribute.getValue().equals("yes"))  
        attribute.setValue("no");
}  
 //修改节点文本内容
while (texIter.hasNext()) {  
     Element element = (Element) iter.next();  
     element.setText("xxx")
}

字符串转XML

String text = "<members> <member>sitinspring</member> </members>";      
Document document = DocumentHelper.parseText(text);  

XML转字符串

// 创建xml解析器对象reader
SAXReader reader = new SAXReader();
// 加载xml文件, 获取document对象
Document document = reader.read("src/test_xml/first.xml");
//xml转换成字符串
String memberXmlText=document.asXML();
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-01-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 乱码三千 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基本使用
  • 创建XML
    • 输出的内容为
    • 修改XML
    • 字符串转XML
    • XML转字符串
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档