0

我正在尝试使用 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>

撒克逊人抛出以下错误:

SXXP0003: Error reported by XML parser: Invalid byte 1 of 1-byte UTF-8 sequence.

处理 XML 中这些类型的“特殊”字符的最佳方法是什么,这些字符原本是有效的,但在实际解析/转换中中断?

4

2 回答 2

2

由于以上不是有效的 XML,因此您必须对输入进行一些预处理(例如使用 a FilterReader),因为几乎任何 XML 解析器都会指示错误(通常是致命错误,因此您无法处理错误并继续) .

如果特殊引号仅在 xml 中,您可以用普通引号简单地替换特殊引号(如果您必须检查编码类型的序言,则需要做更多的工作)。如果您想在文档的其他地方保留特殊引号,您将不得不做一些更复杂的事情(主要是跟踪您是否在标签中)。

于 2009-09-09T16:45:09.513 回答
1

问题是那些“特殊”引号不是有效的 xml。Saxon 或任何其他 xml 解析器将把这些东西扔掉而不解析文档。

我唯一能建议的是搜索和替换那些并用预期的引号替换它们。

于 2009-09-09T16:45:18.033 回答