Java XML解析问题
我需要解析它,这样我就可以得到MMV的属性和所有CS标记的所有属性Java XML解析问题,java,xml,xml-parsing,Java,Xml,Xml Parsing,我需要解析它,这样我就可以得到MMV的属性和所有CS标记的所有属性 <MMV val="Configdes000110010101"> <CS protocol="SNMP" CommandString="wmanIfBsDcdInterval" oid="1.3.6.1.2.1.10.184.1.1.2.2.1.1" Get_SecurityString="public" Set_SecurityString="public" type="
<MMV val="Configdes000110010101">
<CS protocol="SNMP" CommandString="wmanIfBsDcdInterval"
oid="1.3.6.1.2.1.10.184.1.1.2.2.1.1" Get_SecurityString="public"
Set_SecurityString="public" type="INTEGER" > </CS>
<CS protocol="SNMP" CommandString="wmanIfBsUcdInterval"
oid="1.3.6.1.2.1.10.184.1.1.2.2.1.2" Get_SecurityString="public"
Set_SecurityString="public" type="INTEGER" > </CS>
<CS protocol="SNMP" CommandString="wmanIfBsUcdTransition"
oid="1.3.6.1.2.1.10.184.1.1.2.2.1.3" Get_SecurityString="public"
Set_SecurityString="public" type="INTEGER" > </CS>
<CS protocol="SNMP" CommandString="wmanIfBsDcdTransition"
oid="1.3.6.1.2.1.10.184.1.1.2.2.1.4" Get_SecurityString="public"
Set_SecurityString="public" type="INTEGER" > </CS>
</MMV>
您需要一个XML解析器,最好是一个支持XPath的引擎。我使用XOM(Java)并编写XPath表达式,如
Nodes attributes = document.query("//MMV@*");
这将给出所有MMV属性的所有属性。同样地
Nodes attributes = document.query("//CS@*");
发布XML后更新
Node valAttribute = document.query("MMV@val").get(0);
CS版本应该仍然可以使用,或者
Nodes csAttributes = document.query("MMV/CS@*");
或者,这可以通过XSLT实现
注意:您需要属性;实际上,您可能只需要属性值您可以使用DOM/SAX/Pull解析器来提取所需的信息。选择取决于XML的大小和您想要做什么。您可以使用jdom,它有一个简单的api,易于使用。试试JAXB。它将解析XML并将属性绑定到对象。您可以从XML创建XSD,JAXB将生成类文件并进行解析