2011-04-10 69 views
1

我有一个xml尝试解析&阅读它,但不知道xml可能包含多少个节点?所以我试图读取节点&节点的值?如何在java中获取来自XML的节点和节点值

我如何得到相同的说:

<company> 
    <personNam>John</personName> 
    <emailId>[email protected]</emaiId> 
    <department>Products</department> 
    (may have additionaly nodes & values for same) 
</company> 

对不起忘了加我的代码,使用DOM: -

Document document = getDocumentBuilder().parse(new ByteArrayInputStream(myXML.getBytes("UTF-8")));   
String xPathExp = "//company"; 
XPath xPath = getXPath(); 
NodeList nodeList = (NodeList)xPath.evaluate(xPathExp, document, XPathConstants.NODESET);   
nodeListSize = nodeList.getLength(); 
System.out.println("#####nodeListSize"+nodeListSize); 

for(int i=0;i<nodeListSize;i++){ 
    element=(Element)nodeList.item(i); 
    m1XMLOutputResponse=element.getTextContent(); 
    System.out.println("#####"+element.getTagName()+" "+element.getTextContent()); 
} 
+0

是否使用SAX解析器或DOM解析器的XML?你能发表你写的代码吗? – 2011-04-10 09:11:20

+0

你正在使用什么语法分析器,你想用数据做什么?你能发布迄今为止的代码吗? – 2011-04-10 09:11:27

+0

Dupe的http://stackoverflow.com/questions/4076910/how-to-retrieve-element-value-of-xml-using-java – 2013-08-01 15:54:34

回答

1

考虑使用JAXB库。将您的XML映射到Java类并返回是一种无痛的方式。基本原则是JAXB将为您提供您的XML模式(XSD)并为其生成相应的Java类。然后,您只需调用marshallunmarshall方法,即使用XML的内容填充Java类,或者从Java类生成XML。

美中不足的是,当然,前提是你需要知道如何编写架构:)

+0

抱歉,仍然无法获得它。例如让personNam:John&..等任何一个拥有代码的人 – Vardhaman 2011-04-10 15:40:41