如何使用XPath 3.1对节点文本进行JSON转义生成JSON字符串?
用XPath 3.1实现XML节点文本的JSON转义
问题场景
给定如下XML节点:
<xml><Hello world "&" foo bar></xml>
调用string(/xml)得到的文本为:<Hello world "&" foo bar>,需要将其处理为符合JSON字符串规范的形式,最终结果如下:
"<Hello world \"&\" foo bar>"
实现方案
在XPath 3.1中,可直接使用json:serialize()函数完成需求,该函数会自动按照JSON字符串规则对输入文本进行转义,并添加必要的双引号包裹。
完整的XPath表达式:
json:serialize(string(/xml))
说明
string(/xml):提取目标节点的字符串值;json:serialize():将输入字符串序列化为合法的JSON字符串字面量,自动处理双引号、反斜杠等需转义的字符,同时为整个字符串添加双引号包裹。
注意:该函数属于XPath 3.1扩展功能,需使用支持XPath 3.1的处理器(如Saxon)执行。
内容的提问来源于stack exchange,提问作者Fravadona
相关产品推荐
相关产品推荐

