Java 解析XML文档以获取节点值

Java 解析XML文档以获取节点值,java,xml-parsing,Java,Xml Parsing,我的xml结构如下所示: String attributesXML="<entry> <value> <List> <String>Rob</String> <String>Mark</String> <String>Peter</String>

我的xml结构如下所示:

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,我将设置格式。谢谢。。。