Java XML 空节点

标签 java xml

XML 文件:

<?xml version="1.0" encoding="UTF-8"?>
<Personnel>
  <Employee type="permanent">
        <Name>Ali</Name>
        <Id>3674</Id>
        <Age>34</Age>
   </Employee>
  <Employee type="contract">
        <Name>Hasan</Name>
        <Id>3675</Id>
        <Age>25</Age>
    </Employee>
  <Employee type="permanent">
        <Name>Ahmet</Name>
        <Id>3676</Id>
        <Age>28</Age>
    </Employee>
</Personnel>

XML.java:

public class XML{
    DocumentBuilderFactory dfk;
    Document doc;
        public void xmlParse(String xmlFile) throws
                                              ParserConfigurationException, SAXException,
                                              IOException {
            dfk= DocumentBuilderFactory.newInstance();
            doc= dfk.newDocumentBuilder().parse(new File(xmlFile));
            xmlParse();
        }

        public void xmlParse(){
            doc.getDocumentElement().normalize();
            Element  element    = doc.getDocumentElement();
            NodeList nodeList = element.getElementsByTagName("Personnel");

            for (int i = 0; i < nodeList.getLength(); i++) {
                Node node = nodeList.item(i);
            }
        }
}

大家好; 我如何获取姓名、ID、年龄等。我尝试了更多次但不起作用,我只显示空.. 抱歉我的英语不好.. (XML文件>正确<)

最佳答案

您可以尝试此方法来获取元素及其子元素。这只是为了帮助您入门:

 public void xmlParse(String xmlFile) throws ParserConfigurationException, SAXException,IOException {
    DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
    DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
    Document document = docBuilder.parse(new File(xmlFile));
    xmlParse(document.getDocumentElement());
}

private void xmlParse(Element node) {
    NodeList nodeList = node.getChildNodes();
    for (int i = 0; i < nodeList.getLength(); i++) {
        Node currentNode = nodeList.item(i);
        String value = currentNode.getNodeName();
        System.out.print(value + " "); // prints Employee

        NodeList nodes = currentNode.getChildNodes();
        for (int j = 0; j < nodes.getLength(); j++) {
            Node cnode = nodes.item(j);
            System.out.print(cnode.getNodeName() + " ");//prints:name, id, age
        }
        System.out.println();
    }
}

输出为:

#text 
Employee #text Name #text Id #text Age #text 
#text 
Employee #text Name #text Id #text Age #text 
#text 
Employee #text Name #text Id #text Age #text 
#text 

关于Java XML 空节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16114378/

相关文章:

java - 将 Array 划分为 2 个子数组并检查乘法是否相等

java - 我怎么知道 DataInput 的大小?

php - 如何使文本中的每个单词都可以点击并将其发送到脚本

java - 添加新 fragment 时显示的按钮

java - 无法识别 CardLayout 中当前可见的卡片

java - jOOQ 中的动态运行时 PostgreSQL 模式选择

java - Spring mvc maven - 添加库

java - 如何使用安全约束将用户重定向到特定页面?

java - 使用 xstream 解析大型 xml 文件时出现 OutOfMemoryError

android - 在 Android 中删除 xml 字符串