XML解析问题

时间:2009-11-25 06:34:20

标签: 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="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>

4 个答案:

答案 0 :(得分:2)

您将需要一个XML解析器,最好是一个支持XPath的引擎。我使用XOM(Java)http://www.xom.nu并编写类似

的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完成。

注意:你要求属性;你可能实际上只想要属性值

答案 1 :(得分:1)

您可以使用DOM / SAX / Pull Parser提取所需信息。选择取决于XML的大小以及您想要做的事情。

答案 2 :(得分:1)

你可以使用jdom,它有一个简单的api,很容易使用。

答案 3 :(得分:1)

尝试JAXB。它将解析XML并将属性绑定到对象。您可以从XML创建XSD,JAXB将生成类文件并进行解析。