请帮我解决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”。任何人都可以帮助我获得当前节点的一个值。
答案 0 :(得分:0)
您应该从当前节点中选择名称,如下所示:
List list = document.selectNodes( "//a/@href" );
for (Iterator iter = list.iterator(); iter.hasNext(); ) {
Attribute attribute = (Attribute) iter.next();
String url = attribute.getValue();
}
答案 1 :(得分:0)
因为它使用XPath为什么不尝试类似的东西:
root.selectNodes("\root\variant[1]\values\name");
这意味着:在root中获取第一个变体并搜索&#34; \ values \ name&#34;。
您也可以尝试删除双斜杠。双斜线表示任何具有祖先的情况,因此可能会造成混淆。您可以使用点来选择当前节点:
variant.selectNodes("./values\name");