我需要一个单行的XPath 1.0表达式来计算节点的长度,但要排除任何子节点(如果存在)中的文本。
例如,
的string-length()<node>This is text</node>
为12(可以),但string-length()为
<node>This is<any>any text</any> text</node>
<node>This <any>any text</any>is text</node>
大于12(不好)。
我不能使用string-length(//node/text())
,因为如果node
中有任何子节点,它将占用node
中的第一行文本。
答案 0 :(得分:1)
仅XPath 1.0不能仅提供元素的文本节点子代的字符计数。您还必须使用托管XPath库的语言的功能。
此XPath(首先由@MartinHonnen in comments发布)
sum(/node/text()/string-length())
将根据要求提供/node
的所有文本节点子代的字符计数。
答案 1 :(得分:0)
使用此希望将运行1.0:
string-length(//node)