解析String类型的XML

来源:互联网 发布:程序员 出差吗 编辑:程序博客网 时间:2024/04/30 13:33

场景:

解析字符串类型的XML

 

实例代码:

import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.Node;import org.w3c.dom.NodeList;import org.xml.sax.InputSource; public void resolveStringXml() {String soap="<?xml version="1.0" encoding="UTF-8" ?>"+"<persons>"+"<person id="001">"+"<name>张三</name>"+"<age>20</age>"+"</person>"+"<person id="002">"+"<name>李四</name>"+"<age>30</age>"+"</person>"+"</persons>"; //读取并转换StringReader rr=new StringReader(soap);DocumentBuilderFactory builderFactory=DocumentBuilderFactory.newInstance();DocumentBuilder domBuilder=builderFactory.newDocumentBuilder();Document document=domBuilder.parse(new InputSource(rr)); //解析XMLNodeList roots = document.getChildNodes();Node root = roots.item(0);if (root!=null && root.getNodeName().equals("persons")){ //persons节点NodeList persons = root.getChildNodes();   for (int i = 0; i < persons.getLength(); i++) {   Node person = persons.item(i);   if (elem.getNodeName().equals("person")){ //person节点 String id=person.getAttributes().getNamedItem("id").getNodeValue();   NodeList nodes = elem.getChildNodes();   for (int j = 0; j < nodes.getLength(); j++) {Node node = nodes.item(j);if (node.getNodeName().equals("name")){ //name节点   String name = node.getNodeValue();}else if (node.getNodeName().equals("age")){ //age节点   String age = node.getNodeValue();} }  }   }}}

参考:详解Java解析XML的四种方法

 

原创粉丝点击