<?xml version="1.0"?>
<shop>
<shoes>
<brand>Nike</brand>
<size>13</size>
<colour>White</colour>
<price>34.99</price>
<additional name="abc">123</additional>
<additional name="def">456</additional>
<additional name="ghi">789</additional>
<additional name="jkl">101</additional>
</shoes>
<trousers>
<brand>Levi</brand>
<size>36</size>
<legSize>33</legSize>
<colour>Stonewash</colour>
<price>69.99</price>
<additional name="mno">112</additional>
<additional name="pqr">131</additional>
<additional name="stu">415</additional>
<additional name="vwx">161</additional>
</trousers>
</shop>
给定上面的 xml 文件,我将如何检索所有的列表<additional>
内的标签<shoes>
标签?我想获取“名称”的所有值以及标签之间的数值。像这样的东西:
abc, 123
def, 456
ghi, 789
jkl, 101
问题是我不知道会有多少个额外的标签。可能没有,也可能有 20 个。我需要某种方法来统计所有这些,然后剔除信息。
这是一个使用的示例XPath
从 JDK 执行查询。它假设变量xml
包含您的 XML 文档。
XPathFactory factory = XPathFactory.newInstance();
XPath xPath = factory.newXPath();
NodeList nodeList = (NodeList) xPath.evaluate("//shoes/additional", new InputSource(new StringReader(xml)), XPathConstants.NODESET);
for (int i = 0; i < nodeList.getLength(); ++i) {
String name = nodeList.item(i).getAttributes().getNamedItem("name").getNodeValue();
String text = nodeList.item(i).getTextContent();
System.out.println(name + ", " + text);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)