Java DOM解析只获取父元素

时间:2015-04-04 19:41:16

标签: java parsing dom

我有以下xml:

<categories>
    <category id="1">
        <name>XML</name>
        <category id="2">
            <name>XPath</name>
        </category>
        <category id="3">
            <name>XML Schema</name>
        </category>
        <category id="4">
            <name>XSLT</name>
        </category>
        <category id="5">
            <name>XSL-FO</name>
        </category>
        <category id="6">
            <name>XQuery</name>
        </category>
    </category>
</categories>

我正在尝试使用DOM解析它。我想获得父类别,并希望输出如下所示:

Current element: category
Id: 1

我正在使用下面的代码但是没有得到正确的输出。我该如何解决这个问题?

NodeList xmlCategories = document.getElementsByTagName("category");
for (int i = 0; i < xmlCategories.getLength(); i++) {
    Node category = xmlCategories.item(i);
    if (category.hasChildNodes()) {
        System.out.println("\nCurrent element: " + category.getNodeName());
        if (category.getNodeType() == Node.ELEMENT_NODE) {
            Element element = (Element) category;

            System.out.println("Id: " + element.getAttribute("id"));
        }
    }
}

我得到的输出是:

Current element: category
Id: 1

Current element: category
Id: 2

Current element: category
Id: 3

Current element: category
Id: 4

Current element: category
Id: 5

Current element: category
Id: 6

1 个答案:

答案 0 :(得分:0)

db.default.url="jdbc:mysql://localhost/continuum?characterEncoding=UTF-8&serverTimezone=UTC"

我想这应该这样做。如果一个catagory元素有一个名为catagory的孩子,那就是父母,那就是我爆发的地方。 输出是:

当前元素:类别

Id:1