dom4j解析xml(转)

以前只是写xml,一直都没有解析xml,因为最近需要,所以找了许多资料学习了dom4j解析xml,网上写的很好的一个教程,一起学习

http://blog.csdn.net/redarmy_chen/article/details/12969219

 使用dom4j解析xml


1.获取Document对象的三种方式:
 a.通过SAXReader对象获取Document
 SAXReader reader = new SAXReader();
 Document doc = reader.read(new File(test.xml)); //这里也可以传入一个输入流对象。
 

b.解析XML形式的文本,得到document对象.
 Document doc = DocumentHelper.parseText(strXML);
 

c.主动创建document对象.  
Document doc= DocumentHelper.createDocument();
2.xml和字符串相互转换
a.将xml转换成字符串
 Document Element 有asXML();将包含的xml数据转换成字符串格式。
 

 b.也可以通过Document解析,将字符串转换成xml数据
 Document doc= DocumentHelper.parseText(String strXML);
   
 3.将Document对象输出为xml文件
    a.无格式的
    XMLWriter writer = new XMLWriter(out); 接收输出流对象[outputFormat对象]
    writer.write(Document);传入一个Document对象,他会将document中的xml数据都写入到指定的位置。
  writer.flush();
  writer.close();
       b.有格式的。
   // 紧凑的格式  
        // OutputFormat format = OutputFormat.createCompactFormat();  
        // 排版缩进的格式  
          OutputFormat format = OutputFormat.createPrettyPrint(); 
        //如果xml中有中文数据,还需要设置编码
         format.setEncoding("UTF-8"); 
         XMLWriter writer = new XMLWriter(out,format);
         writer.write(Document);
         writer.flush();
  writer.close(); 






//通过元素对象进行操作
/*Element addAttribute(String name, String value); 为该节点增加属性
* void add(Attribute attribute);   为该节点增加属性
* void appendAttributes(Element element); ?
* addText(String text);  为该节点增加文本
* add(Text text);      为该节点增加文本
* boolean remove(Attribute attribute);  为该节点删除某个属性。
* remove(Text text);   为该节点删除某个文本
* String getText();   获取该节点的文本。
* String getTextTrim();   获取该节点的文本。取出多余的空格
*  String getStringValue(); ?
* List attributes(); 返回该节点所有属性的List集合,List的类型为 List<Attribute>
* void setAttributes(List attributes);  设置该节点的所有属性。 传入的list应该是List<Attribute>
*  int attributeCount(); 返回属性的长度
*  Iterator attributeIterator(); 返回该节点的所有属性的迭代器
*Attribute attribute(int index); 获取该节点指定顺序的属性
* Attribute attribute(String name); 通过name获取指定的属性
* String attributeValue(String name); 通过name获取指定的属性的值
* void setAttributeValue(String name, String value); 更改某个属性的值
* Element element(String name); 返回该节点下指定名称的子节点
*  List elements(); 返回该节点的所有子节点
*  List elements(String name);返回该节点所有指定名称的子节点
* Iterator elementIterator();返回该借点的子节点的迭代器
* Iterator elementIterator(String name);
* boolean isRootElement(); 判断该节点是不是根节点
*  String elementText(String name); 通过节点名称获取其文本
* String elementTextTrim(String name);
* addElement(String nodeName) 增加一个子节点,名称为指定的名称

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值