我需要解析Java中的XML文件,并根据条件检查一些支持。我尝试使用DOM。
<Config>
<Configuration>
<Descriptor>
<e id="0">
<family>Rest</family>
<supportedList>
<_length>5</_length>
<_type>TypeX[]</_type>
<e id="0">value-1</e>
<e id="1">value-2</e>
<e id="2">value-3</e>
<e id="3">value-4</e>
<e id="4">value-5</e>
</supportedList>
</e>
<e id="1">
<family>Rest1</family>
<supportedList>
<_length>5</_length>
<_type>TypeX[]</_type>
<e id="0">value1-1</e>
<e id="1">value1-2</e>
<e id="2">value1-3</e>
<e id="3">value1-4</e>
<e id="4">value1-5</e>
</supportedList>
</e>
</Descriptor>
</Configuration>
</Config>
在上面的XML文件中,我需要经过“e”块然后遍历Descriptor块,然后搜索Family - Rest1,然后遍历supportedList。检查supportedList是否包含用户提供的值(如果存在),然后返回true。
我尝试使用DOM解析器,但我无法正确解析文件。我正在处理的实际XML文件是20K行并且数据太多。任何简单的解决方案。
答案 0 :(得分:0)
XPathFactory factory = XPathFactory.newInstance();
XPath xpath = factory.newXPath();
xPathExpression = xpath.compile("//family[text()='Rest1']/e");
NodeList list = (NodeList) xPathExpression
.evaluate(xml, XPathConstants.NODESET);
在XPath语法中,只需搜索“XPath备忘单”即可。