返回节点的 XPath
可能的重复:
dom4j 的 XPATH 问题
我正在使用 dom4j 覆盖 XML 中的值。 XML 看起来像这样:
<name color="blue" time="555555">
<element1 param="1">
<value>value1</value>
<value>value2</value>
<value>value3</value>
<element1>
</name>
<name color="blue" time="888888">
<element2 param="1">
<value>value1</value>
<value>value2</value>
<value>value3</value>
<element1>
</name>
我试图通过以下方式选择节点:
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(xmlLocation);
List list= document.selectNodes("//element1/@color/[@time='555555']" );
但列表返回布尔值(在本例中为 true)。我想更改 time="555555" 的所有 3 个值。
如果我这样做:
List list= document.selectNodes("//element1/@time" );
它返回节点。(属性和元素) 有没有办法直接去时间为555555的那个节点。 请帮忙。
Possible Duplicate:
XPATH problem with dom4j
I am using dom4j to overwrite a value in the XML. The XML looks like this:
<name color="blue" time="555555">
<element1 param="1">
<value>value1</value>
<value>value2</value>
<value>value3</value>
<element1>
</name>
<name color="blue" time="888888">
<element2 param="1">
<value>value1</value>
<value>value2</value>
<value>value3</value>
<element1>
</name>
I am trying to select nodes by:
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(xmlLocation);
List list= document.selectNodes("//element1/@color/[@time='555555']" );
but the list returns boolean(which is true in this case). I wanted to change all the 3 values where time="555555".
If I do:
List list= document.selectNodes("//element1/@time" );
It returns nodes.(attributes and elements)
Isn't there a way to directly go to that node where time is 555555.
please help.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
假设以下格式良好的文档:
如果您希望所有“名称”节点的时间为 555555,那么您需要
如果您希望名称下的所有值节点的时间为 555555,那么您需要
Assuming the following well-formed document:
If you want all 'name' nodes with a time of 555555 then you'll need
If you want all value nodes underneath name with a time of 555555 then you'll need