xml的解析方法 有2种,Dom 解析 和SAX解析。
sax是基于事件流的解析,Dom是基于XML文档树结构的解析 。
1 <?xml version="1.0" encoding="UTF-8"?> 2 3 <!-- jdom如何操作xml文件 --> 4 <person> 5 <pro> 6 <id name="id">I08002726</id> 7 <name>shuanlei</name> 8 <age name="a">20</age> 9 <gender>male</gender> 10 <job>programmer</job> 11 </pro> 12 </person>
dom4j 解析 xml文档
1 SAXReader reader = new SAXReader(); 2 //dom4j是用xpath的方式 来进行 解析 地 3 try { 4 //读取XMl文档 document对象 xml node节点 返回值是element 5 Document document = reader.read(new File("src/com/shuanlei/dom4j/hello.xml")); 6 Element root = document.getRootElement();//拿到xmldocument对象根节点 7 for (Iterator iterator = root.elementIterator(); iterator.hasNext();) { 8 Element element = (Element) iterator.next(); 9 10 11 for (Iterator nodes = element.nodeIterator(); nodes.hasNext();) { 12 Node type = (Node) nodes.next(); 13 // System.err.println(type.getName()+"--"+type.getText()); 14 } 15 }
xpath // 解析 xml文档中 指定 路径的 节点 属性 。 含有完整信息的Node节点 才 叫做 Element。
需要添加jar.
1 //xpath 解析 xml 文档中 指定 节点 路径 的 属性 值 节点 2 //含有完整信息的节点 才算是一个元素 3 List<Node> List =document.selectNodes("//person/pro"); 4 for (Iterator it = List.iterator(); it.hasNext();) { 5 Element node = (Element) it.next(); 6 for (Iterator its = node.nodeIterator(); its.hasNext();) { 7 Node node2 = (Node) its.next(); 8 System.out.println("ParseXml.read()"+node2.getName()); 9 } 10 // 11 }