我正在尝试使用Saxon将样式表应用于XML文档。给定一个在Microsoft Word中生成并具有Microsoft Word样式引号的XML文件,例如以下文档中的FOO
<?xml version="1.0" encoding="UTF-8"?>
<doc>
<act>
<performer typeCode=“FOO“ />
<performer typeCode="BAR" />
</act>
</doc>
Saxon抛出以下错误:
SXXP0003: Error reported by XML parser: Invalid byte 1 of 1-byte UTF-8 sequence.
在XML中处理这些类型的“特殊”字符的最佳方法是什么?这些字符旨在有效但在实际的解析/转换中会中断?
答案 0 :(得分:2)
由于上述内容不是有效的XML,您必须对输入进行一些预处理(例如使用FilterReader
),因为任何XML解析器都会指示错误(通常是致命错误,所以你无法处理错误并继续)。
如果特殊引号仅在xml中,您可以使用普通引号简单替换特殊引号(如果必须检查编码类型的前导码,则需要更多工作)。如果你想在文档的其他地方保留特殊引号,你将不得不做一些更复杂的事情(主要是跟踪你是否在标签中)。
答案 1 :(得分:1)
麻烦的是那些'特殊'引号是无效的xml。 Saxon或任何其他xml解析器将抛出那些东西而不解析文档。
我唯一可以建议的是搜索并替换它们并用预期的引号替换它们。