xml中的Unicode字符

问题描述 投票:0回答:1

我在XML文件上运行xquery时遇到错误。实际上,XML中有一些元素与数据一起具有unicode字符。

      "+30 2222032000",
      "+30 6973222259\u001f"

我尝试使用替换和删除函数,但我不确定我的源文件中可以包含所有unicode字符。有没有通用的方法,我可以删除所有这些字符

谢谢

xml unicode character-encoding xquery
1个回答
3
投票

XML文档中的每个字符都是Unicode字符,如果有非Unicode字符,那么您确实会遇到问题。

您的实际问题是该文档使用Unicode字符编码“\ u001f”,XML解析器无法识别。它是完全合法的XML内容,它只是被视为一个由反斜杠开头的6个字符的序列,而不是控制字符x1F的表示(因为它发生的不是XML 1.0允许的字符) 。

处理这些字符的一种方法是将“+30 6973222259 \ u001f”视为JSON字符串,并使用XQuery 3.1函数json-to-xml()将其转换为XML(它需要包含引号)。但是,如果存在转换为XML不允许的字符的转义序列(如\u0000),则会出现问题。 json-to-xml()函数有各种选项来处理这种情况。

© www.soinside.com 2019 - 2024. All rights reserved.