我必须解析XML:
<?xml version="1.0" encoding="utf-8"?>
<data>
<index id="firstName">Ankit</index>
<index id="LastName">Negi</index>
<index id="Work">freelance</index>
</data>
如何使用dom解析器以下列格式获取值:
firstName : Ankit
我陷入困境并且非常困惑,以至于我无法继续前进。以下是我的代码:
// after getting the document ..
doc.getDocumentElement().normalize();
System.out.println(doc.getDocumentElement().getNodeName());
//NodeList nodeList = doc.getChildNodes();
NodeList nodeList = doc.getDocumentElement().getChildNodes();
for(int i=0;i<nodeList.getLength();i++) {
Node node = nodeList.item(i);
if(node instanceof Element) {
String nodeVal = node.getAttributes().getNamedItem("id").getNodeValue();
String content = null;
NodeList nodeLis = node.getChildNodes();
for(int j=0;j<nodeLis.getLength();j++) {
Node n1 = nodeLis.item(j);
if(n1 instanceof Element) {
content = n1.getNodeValue();
}
}
System.out.println("---------");
System.out.println(nodeVal+" : "+content);
}
}
答案 0 :(得分:1)
在dom中,一切都是节点。从注释到元素都是节点。您必须过滤ELEMENT_NODE
,然后获取它的属性和内部文本。
doc.getDocumentElement().normalize();
Element elmt = doc.getDocumentElement();
NodeList nl = elmt.getChildNodes();
String k, v;
for(int i = 0; i < nl.getLength(); i++) {
Node n = nl.item(i);
if(n.getNodeType() == Node.ELEMENT_NODE){
NamedNodeMap attrs = n.getAttributes();
System.out.println(attrs.getNamedItem("id").getTextContent() + " : " + n.getTextContent());
}
}