使用 Xpath 计算标签中的特定标点符号

Count specific punctuation in a tag using Xpath

我正在尝试计算标记 "report":

中冒号后跟 space 的数量

<report>But that doesn't work either: what do you guys think: To be solved</report>

我的 xpath 代码

`report[count([text()=": "]) &gt; 1]`

但它不起作用

要完成@Slkrasnodar 提供的 XPath 2.0 解决方案,这里是 XPath 1.0 解决方案:

string-length(//report)-string-length(translate(//report,":",""))

我们检查原始字符串的长度。然后我们生成一个没有冒号的字符串并检查它的长度。最后我们将原来的长度字符串减去这个长度得到结果。

输出:2

编辑:请修复您的 XML 文件。它包含未闭合的标签。我曾与 :

<authors>
<author>
<gnm>Lee</gnm>
<snm>Auch</snm>
</author>
<report>Search Results: Count the number of words in a xml node using xsl: Thank you</report>
</authors>

要获取报告中包含一个以上冒号的作者姓名,请使用以下表达式:

//authors[string-length(//report)-string-length(translate(//report,":",""))>1]//gnm/text()

输出:李