如何获得Node& java中XML的节点值

时间:2011-04-10 09:08:38

标签: java xml dom

我有一个xml试图解析&读它,但不知道xml可能包含多少个节点?所以我试着阅读节点&节点值?

我如何得到同样的发言:

<company>
    <personNam>John</personName>
    <emailId>abc@test.com</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());
}

2 个答案:

答案 0 :(得分:1)

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

唯一的缺点当然是你需要知道如何编写XML Schema:)

答案 1 :(得分:0)

了解如何使用XML DOM。以下是how to use XML DOM to fetch node and node values上的示例。