Java XML解析问题

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的属性和所有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="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将生成类文件并进行解析