XML 转换中的无效字符
Posted
技术标签:
【中文标题】XML 转换中的无效字符【英文标题】:Invalid character in XML transformation 【发布时间】:2021-10-31 14:54:36 【问题描述】:我有一个带有如下标签的xml文件
<mvaKode>VHØY</mvaKode>
我创建了一个转换器,它将 mvaKode 中的值转换如下
<EXTERNAL_TRANSACTION_CODE>
<xsl:value-of select="mvaKode"/>
</EXTERNAL_TRANSACTION_CODE>
但是当我进行转换时,我收到以下错误
An invalid character was found in text content. Error processing resource 'http://dse1xdiapp9142:8082/servlet/org.netbeans....
错误是由于 mvaKode 中的 Ø
字符(瑞典字符)引起的。所以这似乎是一个编码问题。
有什么办法可以摆脱这个错误??
非常感谢任何帮助
【问题讨论】:
您的 XML 是由该 servlet 动态生成的还是静态文件? 使用发布的代码无法重现该问题:xsltfiddle.liberty-development.net/jxWZS7U。请提供一个可重现的示例并说明您使用的是哪个处理器。 那么您的 Java 代码从磁盘读取该文件并将其发送到客户端的方式是错误的。显示该代码和 XML 的最小示例。 可能是您的处理器无法处理非 ASCII 字符。或者(更可能的是,恕我直言)您的处理器出于某种原因认为源编码使得字符无效。 正如我所说,XML 和 XSLT 不是问题。在http://dse1xdiapp9142:8082/...
URL 下服务 XML 的代码是。
【参考方案1】:
首先,尝试确定 (a) 是否存在存储的文件中的数据被错误编码,或者 (b) 存在对编码的“误解”,从而使文件使用编码 X 进行编码,但是正在使用编码 Y 进行解码。(原因几乎可以肯定是这两个选项之一)。
如果原因是 (a),那么您需要 (i) 修复现有数据,并 (ii) 首先调查数据是如何损坏的,以防止再次发生。
如果原因是 (b),那么您需要在某处修复配置设置,例如在您的 Web 服务器中。
从所提供的信息来看,这就是我们现阶段所能告诉您的所有信息,但希望它可以为您提供足够的询问渠道。
【讨论】:
以上是关于XML 转换中的无效字符的主要内容,如果未能解决你的问题,请参考以下文章
如何将带有参数数组的字符串 xml 转换为 .NET Core 中的对象