dom4j读取xml文件

  1. 一.Document对象相关
  2. 1.读取XML文件,获得document对象.
  3. SAXReader reader = new SAXReader();
  4. Document document = reader.read(new File("input.xml"));
  5. 2.解析XML形式的文本,得到document对象.
  6. String text = "<members></members>";
  7. Document document = DocumentHelper.parseText(text);
  8. 3.主动创建document对象.
  9. Document document = DocumentHelper.createDocument();
  10. Element root = document.addElement("members");// 创建根节点
  11. 二.节点相关
  12. 1.获取文档的根节点.
  13. Element rootElm = document.getRootElement();
  14. 2.取得某节点的单个子节点.
  15. Element memberElm=root.element("member");// "member"是节点名
  16. 3.取得节点的文字
  17. String text=memberElm.getText();也可以用:
  18. String text=root.elementText("name");这个是取得根节点下的name字节点的文字.
  19. 4.取得某节点下名为"member"的所有字节点并进行遍历.
  20. List nodes = rootElm.elements("member");
  21. for (Iterator it = nodes.iterator(); it.hasNext();) {
  22. Element elm = (Element) it.next();
  23. // do something
  24. }
  25. 5.对某节点下的所有子节点进行遍历.
  26. for(Iterator it=root.elementIterator();it.hasNext();){
  27. Element element = (Element) it.next();
  28. // do something
  29. }
  30. 6.在某节点下添加子节点.
  31. Element ageElm = newMemberElm.addElement("age");
  32. 7.设置节点文字.
  33. ageElm.setText("29");
  34. 8.删除某节点.
  35. parentElm.remove(childElm);// childElm是待删除的节点,parentElm是其父节点
  36. 9.添加一个CDATA节点.
  37. Element contentElm = infoElm.addElement("content");
  38. contentElm.addCDATA(diary.getContent());
  39. 三.属性相关.
  40. 1.取得某节点下的某属性
  41. Element root=document.getRootElement();
  42. Attribute attribute=root.attribute("size");// 属性名name
  43. 2.取得属性的文字
  44. String text=attribute.getText();也可以用:
  45. String text2=root.element("name").attributeValue("firstname");这个是取得根节点下name字节点的属性firstname的值.
  46. 3.遍历某节点的所有属性
  47. Element root=document.getRootElement();
  48. for(Iterator it=root.attributeIterator();it.hasNext();){
  49. Attribute attribute = (Attribute) it.next();
  50. String text=attribute.getText();
  51. System.out.println(text);
  52. }
  53. 4.设置某节点的属性和文字.
  54. newMemberElm.addAttribute("name", "sitinspring");
  55. 5.设置属性的文字
  56. Attribute attribute=root.attribute("name");
  57. attribute.setText("sitinspring");
  58. 6.删除某属性
  59. Attribute attribute=root.attribute("size");// 属性名name
  60. root.remove(attribute);
  61. 四.将文档写入XML文件.
  62. 1.文档中全为英文,不设置编码,直接写入的形式.
  63. XMLWriter writer = new XMLWriter(new FileWriter("output.xml"));
  64. writer.write(document);
  65. writer.close();
  66. 2.文档中含有中文,设置编码格式写入的形式.
  67. OutputFormat format = OutputFormat.createPrettyPrint();
  68. format.setEncoding("GBK"); // 指定XML编码
  69. XMLWriter writer = new XMLWriter(new FileWriter("output.xml"),format);
  70. writer.write(document);
  71. writer.close();
  72. 五.字符串与XML的转换
  73. 1.将字符串转化为XML
  74. String text = "<members> <member>sitinspring</member> </members>";
  75. Document document = DocumentHelper.parseText(text);
  76. 2.将文档或节点的XML转化为字符串.
  77. SAXReader reader = new SAXReader();
  78. Document document = reader.read(new File("input.xml"));
  79. Element root=document.getRootElement();
  80. String docXmlText=document.asXML();
  81. String rootXmlText=root.asXML();
  82. Element memberElm=root.element("member");
  83. String memberXmlText=memberElm.asXML();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值