Java - NodeList无法获取Childnode

标签 java xml dom nodelist

我不明白如何使用java获取子节点解析xml文件。例如我有这样的代码:

import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

public class Parser {

    public static void main(String args[]) {

        try{
            File stocks = new File("Stocks.xml");
            DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
            DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
            Document doc = dBuilder.parse(stocks);
            doc.getDocumentElement().normalize();



            NodeList nodes = doc.getElementsByTagName("stock");
            Node nodez = nodes.item(1);
            String s = nodez.getFirstChild().getNodeName(); //outputs #text?
                        System.out.println(s);
                        //If I try this
                        String s = nodez.getNodeName(); //outputs 'stock'


        } catch (Exception e) {
            e.printStackTrace();
        }
    }



}

因此,如果我尝试输出当前节点名称,它会正确输出,但如果我尝试输出下一个子节点名称,它只会输出#text。 如何正确输出我想要的任何节点?我以为我可以使用 getFirstChildgetNextSibling 方法,但似乎我做错了什么?

您可以使用此链接找到 xml 文件:

http://javarevisited.blogspot.com/2011/12/parse-xml-file-in-java-example-tutorial.html

最佳答案

元素“stock”包含文本,该文本作为第一个子元素返回。您可以使用以下内容:

        System.out.println(((Element) nodez).getElementsByTagName("symbol").item(0).getNodeName());
        // get all nodes
        NodeList nl=((Element) nodez).getElementsByTagName("*");
        for (int i = 0; i < nl.getLength(); i++) {
            System.out.println(nl.item(i).getNodeName());
        }

关于Java - NodeList无法获取Childnode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19863289/

相关文章:

java - 2 个表列之间的多个链接...糟糕的设计方法?

java - Spring AOP 配置(XML)

javascript - 使用 JavaScript Ajax 从另一个站点检索内容

java - 我得到一个 else 没有 if 错误,我不明白为什么 - JAVA

java - 减少重复的 if 语句

c# - 确定 XDocument 中的元素

java - Hibernate ConfigurationException : Could not locate cfg. xml 资源 [hibernate.cfg.xml] IntelliJ

python - Python 中的 DOM 操作(如果某个元素只包含一个其他元素......)

javascript - 为什么我的 JavaScript 无法获取导航对象高度

java - 将 SecureRandom 与 SHA-256 结合使用