【发布时间】:2011-12-10 05:07:33
【问题描述】:
所以说我有一个像这样的节点结构:
<Row>
<Column Name="Primary Number">1</Column>
<Column Name="Secondary Number">01</Column>
<Column Name="Text">This is all one sentence</Column>
<Row>
<Column Name="Primary Number">1</Column>
<Column Name="Secondary Number">02</Column>
<Column Name="Text">I would like to return</Column>
<Row>
<Column Name="Primary Number">1</Column>
<Column Name="Secondary Number">03</Column>
<Column Name="Text">as one string, in one xpath line</Column>
首先我想说这不是我的xml,我也没有帮助构建它。但我不得不用它来检索我需要的信息....所以请帮忙。
所以我想使用一个 XPath 做的是返回一个字符串,该字符串包含来自所有 Primary Number=1 节点的所有 n 个文本字段的文本。
这可能使用 XPath 1.0 吗?
我有一个不太优雅的解决方案,但它只有在我知道辅助数字的确切数量时才有效,然后它只是一堆乱七八糟的 concat() ......
大家好,感谢大家的回复! 所以我想用这个字符串做的是使用 contains() 来搜索特定的关键字,但我发现了一个捷径,实际上有一个连接所有值的字符串,并且只需要分享它以防有人有类似的问题。 Tod 的提示对此有很大帮助,我只是为其添加了条件和 BAM 魔法。 这里是:
Table[@Name='TableName']/Row/Column[@Name='Text' and contains(text(),"keyword")][preceding-sibling::Column[@Name='Primary Number' and text()='15']]
因此,它所做的不是将所有节点值结果连接为一个字符串,然后在其上使用 contains(),而是分别在每一行中搜索单词,从而消除对不可能的需求。 感谢所有帮助家伙,如果没有所有的好评,就无法做到! (我会给每个人投票,但我太新了:()
【问题讨论】:
-
@Kan 感谢您的链接,我想我坚持使用凌乱的连接......