如何在dom4j中获取当前元素的节点?

时间:2015-04-13 13:52:33

标签: java xml dom4j

请帮我解决dom4j中的以下问题

这是我的xml文件:

<root>
    <variant>
        <name>first</name>
        <values>
            <name>first_element</name>
        </values>
    </variant>
    <variant>
        <name>second</name>
        <values>
            <name>second_element</name>
        </values>
    </variant>
</root>

我使用以下java代码来获取变体节点。

root.selectNodes("\root\variant");

这给了我列表计数为2.我使用list来单独收集每个节点。从我正在迭代的列表节点。我曾经使用以下代码来获取值“values \ name”。

variant.selectNodes("\\values\name");

我得到的值都是“first_element和second_element”。任何人都可以帮助我获得当前节点的一个值。

2 个答案:

答案 0 :(得分:0)

您应该从当前节点中选择名称,如下所示:

    List list = document.selectNodes( "//a/@href" );

    for (Iterator iter = list.iterator(); iter.hasNext(); ) {
        Attribute attribute = (Attribute) iter.next();
        String url = attribute.getValue();
    }

http://dom4j.sourceforge.net/dom4j-1.6.1/guide.html

答案 1 :(得分:0)

因为它使用XPath为什么不尝试类似的东西:

root.selectNodes("\root\variant[1]\values\name");

这意味着:在root中获取第一个变体并搜索&#34; \ values \ name&#34;。

您也可以尝试删除双斜杠。双斜线表示任何具有祖先的情况,因此可能会造成混淆。您可以使用点来选择当前节点:

variant.selectNodes("./values\name");