【发布时间】:2010-12-13 16:09:48
【问题描述】:
我正在使用 Saxon 和 XSLT 来转换我无法控制的 HTML 文档。
这些文档可能包含真正应该编码的字符,例如
™
而不是编码的
™
就目前而言,Saxon 在转换期间抛出以下异常,来自 HTMLEmitter:
else if (c >= 127 && c < 160) {
// these control characters are illegal in HTML
DynamicError err = new DynamicError(
"Illegal HTML character: decimal " + (int) c);
err.setErrorCode("SERE0014");
throw err;
是否有更宽松的方法,并告诉 Saxon 忽略并让这些字符原样通过 - 或者 - 我如何配置 Saxon 以使用 XMLEmitter 而不是 HTMLEmitter?
【问题讨论】:
-
XML 允许任意字符,只要编码正确。唯一的例外是通常的:
<>'"&,它必须通过实体引用来表达。另外,什么是 HTML 字符? -
@Dimitre:这是一个公平的
xslt问题。 -
@Alejandro:如果问题的标题是正确的并且不只是针对撒克逊人,我会同意。标题中的问题是如何使用撒克逊语处理无效的 XML 字符,而 OP 真正想要的是如何输出某些特殊字符。
-
@Dimitre:很公平,也更正标题...