下面XML该如何解析:
<?xml version='1.0' encoding='UTF-8'?>
<statType>
<time value=”2011-10-02 21:07:20” />
<name>
<edition value=”222” />
<defaultAD>
<property name=”id” value=”1” />
<property name=”age” value=”2” />
<property name=”scott” value=”3” />
<property name=”sex” value=”4” />
</defaultAD>
<defaultAD>
<property name=”id” value=”1” />
<property name=”age” value=”2” />
<property name=”scott” value=”3” />
<property name=”sex” value=”4” />
</defaultAD>
<defaultAD>
<property name=”id” value=”1” />
<property name=”age” value=”2” />
<property name=”scott” value=”3” />
<property name=”sex” value=”4” />
</defaultAD>
</name>
<names>
<edition value=”333” />
<are>
<property name=”id” value=”1”/>
<property name=”age” value=”2”/>
<property name=”scott” value=”3”/>
<property name=”sex” value=”4”/>
</are>
<are>
<property name=”id” value=”1”/>
<property name=”age” value=”2”/>
<property name=”scott” value=”3”/>
<property name=”sex” value=”4”/>
</are>
</names>
</statType>
------解决方案--------------------
使用xpath:
- Java code
FileReader reader = new FileReader("/tmp/stattype.xml"); InputSource input = new InputSource(reader); XPathFactory factory = XPathFactory.newInstance(); XPath xpath = factory.newXPath(); NodeList list = (NodeList)xpath.evaluate("//property",input,XPathConstants.NODESET); for(int i = 0; i < list.getLength(); i++){ Node node = list.item(i); System.out.printf("name:%s value:%s%n", (String)xpath.evaluate("@name",node,XPathConstants.STRING), (String)xpath.evaluate("@value",node,XPathConstants.STRING)); }
------解决方案--------------------