xml - 没有子节点的 XPath 的 string-length()
问题描述
我需要一个单行 XPath 1.0 表达式来计算节点的长度,但不包括任何子节点中的文本(如果它们存在)。
例如,string-length() 的
<node>This is text</node>
是 12 (ok),但是 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
解决方案
XPath 1.0
单独的 XPath 1.0 不能仅提供元素的文本节点子节点的字符数。您还必须使用托管 XPath 库的语言的工具。
XPath 2.0 及更高版本
这个 XPath(首先由 @MartinHonnen在评论中发布),
sum(/node/text()/string-length())
将根据要求提供 的所有文本节点子节点的字符数/node
。
也可以看看
- XPath中字符串值的定义
- 在 XPath 中测试 text() 节点与字符串值
推荐阅读
- c# - Azure 函数上的 Emgucv 4.2 版
- php - 如何从查询中检索嵌套连接选择语句数据
- python - Python:如何将列与文本条目以及彼此进行比较
- c++ - Sox - 在 C++ 中使用静音效果
- c++ - 如何“重新启动”程序
- ios - 如何在 iOS webview 的多个页面中注入/评估 JS?
- asp.net - 带有分页和可选参数的 Crystal Reports Web 查看器问题
- python - 如何在 Python 中添加数字?
- image - Pytorch:加载灰度图像数据集
- java - 创建名为“servletEndpointRegistrar”的 bean 时出错 Spring Boot