Чтобы завершить решение XPath 2.0, предоставляемое @Slkrasnodar, вот решение 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()
Вывод: Lee