【问题标题】:finding xpath to the value找到值的 xpath
【发布时间】:2015-12-11 21:00:30
【问题描述】:

我想从以下 xml 的 xPath 中获取值{namevalue1}。

<?xml version="1.0" encoding="UTF-8" ?>
<properties>
    <entry key="name1">namevalue1</entry>
    <entry key="name2">namevalue2</entry>
</properties>

value1 的 xPath 是什么?

【问题讨论】:

  • /properties/entry[@key='name1']...
  • @JeffMercado :我只想要值,即 'namevalue1' 。但是,上面的解决方案给了我整个条目 'namevalue1'
  • 您是否使用特定的编程语言进行此操作?这将有助于我们为您提供更有针对性的答案。

标签: xml xpath xml-parsing xpath-2.0


【解决方案1】:

要扩展 Jeff 建议的内容,您需要附加 text() 以仅获取文本节点:

% < in.xml 
<?xml version="1.0" encoding="UTF-8" ?>
<properties>
    <entry key="name1">namevalue1</entry>
    <entry key="name2">namevalue2</entry>
</properties>
% xpquery '/properties/entry[@key="name1"]/text()' in.xml
namevalue1
%

【讨论】:

  • 我不应该使用任何功能,例如文本()
  • text() 不是函数,它是节点类型的测试。空括号的唯一目的是向 XPath 表明您不是在寻找名为 &lt;text&gt; 的节点,
【解决方案2】:

试试这个:

/properties/entry[@key='name1']/text()

【讨论】:

  • 我不应该使用像 text() 这样的函数。没有功能有什么办法吗?
  • 我不知道...为什么不能使用函数?它们是 Xpath 规范的一部分。
  • text() 函数在w3.org/TR/xpath/#path-abbrev Xpath 规范的第 2.5 节中列出...为什么不能使用?
猜你喜欢
  • 2023-03-06
  • 2020-11-15
  • 2011-04-12
  • 2019-05-25
  • 1970-01-01
  • 2014-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多