如何用XPath语法将XML转为字符串以计算其字符长度?
计算完整XML结构的字符长度的XPath方案
要计算包含标签、换行、空格等完整格式的XML字符数,核心是先将XML节点序列化为原始格式的字符串,再用string-length()计算长度,分两种XPath版本说明:
XPath 2.0及以上(推荐)
直接使用serialize()函数将目标节点序列化为保留原始格式的字符串,再嵌套string-length()即可:
string-length(serialize(/data))
这个方法会完整保留XML中的标签、换行符、缩进等所有字符,和你提供的原始XML结构完全一致,计算结果就是整个XML的总字符数。
XPath 1.0(局限性说明)
XPath 1.0没有内置的节点序列化函数,直接用string(/data)只会提取所有子节点的文本内容(即123456),无法保留标签和格式。如果要在XPath 1.0环境下实现需求,需要依赖宿主语言(比如XSLT中通过<xsl:copy-of>输出节点后再统计长度,或者在Python/Java等语言中将节点对象转换为字符串后计算),单纯用XPath 1.0语法无法完成完整XML结构的字符串转换。
内容的提问来源于stack exchange,提问作者Tristan Tran
相关产品推荐
相关产品推荐

