我有一个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());
}
答案 0 :(得分:1)
考虑使用JAXB库。这实际上是一种将XML映射到Java类并返回的无痛方法。基本原则是JAXB采用您的XML Schema(XSD)并为您生成相应的Java类。然后,您只需调用marshall
或unmarshall
方法,这些方法使用XML的内容填充Java类,或者从Java类生成XML。
唯一的缺点当然是你需要知道如何编写XML Schema:)
答案 1 :(得分:0)
了解如何使用XML DOM。以下是how to use XML DOM to fetch node and node values上的示例。