Java 解析XML文档以获取节点值
我的xml结构如下所示:Java 解析XML文档以获取节点值,java,xml-parsing,Java,Xml Parsing,我的xml结构如下所示: String attributesXML="<entry> <value> <List> <String>Rob</String> <String>Mark</String> <String>Peter</String>
String attributesXML="<entry>
<value>
<List>
<String>Rob</String>
<String>Mark</String>
<String>Peter</String>
<String>John</String>
</List>
</value>
</entry>"
String attributesXML=”
抢劫
做记号
彼得
约翰
"
我想把罗布、马克、彼得、约翰的价值观拿来。我可以从入口节点(下面的代码)开始获取节点。问题是我不知道entry node下的子节点名是什么。从入口节点开始,我需要继续向下钻取,直到找到值。我已经编写了一个方法getChildNodeValue(),但它没有提供所需的输出。它可以打印我需要的东西,但也可以打印一些额外的东西。我需要从这个方法getChildNodeValue()以csv的形式返回值
获取入口节点:
DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder();
InputSource is = new InputSource();
is.setCharacterStream(new StringReader(attributesXML));
Document doc = db.parse(is);
NodeList nodes = doc.getElementsByTagName("entry");
for (int i = 0; i < nodes.getLength(); i++) {
if(nodes.item(i).hasChildNodes()){
getChildNodeValue(nodes.item(i));
}
}
public static void getChildNodeValue(Node node) {
System.out.println("Start Node: "+node.getNodeName());
NodeList nodeList = node.getChildNodes();
for (int i = 0; i < nodeList.getLength(); i++) {
Node currentNode = nodeList.item(i);
while(currentNode.hasChildNodes()){
System.out.println("Current Node: "+currentNode.getNodeName());
nodeList = currentNode.getChildNodes();
for(int j=0;j<nodeList.getLength();j++){
currentNode = nodeList.item(j);
System.out.println("Node name: "+currentNode.getNodeName());
System.out.println("Node value: "+currentNode.getTextContent());
}
}
}
}
DocumentBuilder db=DocumentBuilderFactory.newInstance().newDocumentBuilder();
InputSource is=新的InputSource();
is.setCharacterStream(新的StringReader(attributesXML));
文档doc=db.parse(is);
NodeList nodes=doc.getElementsByTagName(“条目”);
对于(int i=0;i 对于(intj=0;j您可以简单地使用XStream库进行xml解析,它将java对象解析为xml,反之亦然。
查看下面的链接
请在设置代码格式方面投入更多精力。目前代码到处都是,很难阅读。在发布之前,请务必查看预览,并询问您是否希望看到这篇文章,如果您试图找到好的问题来回答。@Jon,我将设置格式。谢谢。。。