天天看点

dom4j解析xml常用方法

Document doc = DocumentHelper.parseText(getXmlString());

<1> 返回多个节点 nodeList = doc.SelectNodes("/group/person");

   返回一个则可以使用node = doc.SelectSingleNode("/group/person");

<2> 在使用不规则的层次文档时,不知道中间层次元素,可以使用//符号来越过中间的节点,查询子孙多层次下的其他所有元素:

   nodeList = doc.SelectNode("/group//name");

<3> 查询节点的属性

   nodeList = doc.SelectNodes("/group/person/@id");

<4> 使用text()来获取节点内容

   node = doc.SelectSingleNode("/group/person/name/text()");

<5> 返回某属性的节点

   node = doc.SelectSingleNode("/group/person[@id='10002']");

<6> 返回节点内容相符的节点

   node = doc.SelectSingleNode("/group/person/name[text()='zhangsan']");

<7> 使用 | 符号可以获得多重模式的节点

   nodeList = doc.SelectNodes("/group/person[@id='10002'] | /group/person[@id='10003']");

<8> 新建xml

   Element root = DocumentHelper.createElement("group");

   Document doc = DocumentHelper.createDocument(root);

   Element person1 = root.addElement("person");

   Element name1 = person1.addElement("name");

   name1.setText("zhuolin");

   Element age1 = person1.addElement("age");

   age1.setText("23");

   person1.addAttribute("id", "10002");

   syso(doc.asXML());