如何让Saxon / XSL单独留下HTML编码的实体?

时间:2018-02-12 21:28:59

标签: xml xslt saxon

我有一个源XML文件,其中包含回车符和其他特殊字符编码到文件中的文本块;例如:

<?xml version='1.0' encoding='utf-8' ?>
<library>
  <book>
    <phrase>&quot;This isn&apos;t&#10;a&#10;big deal.&quot;</phrase>
  </book>
</library>

通过Saxon对该文件运行一个简单的身份转换会导致XML中有效的字符被放回到他们的&#34;真实&#34;形式:

<?xml version='1.0' encoding='utf-8' ?>
<library>
  <book>
    <phrase>&quot;This isn't
a
big deal.&quot;</phrase>
  </book>
</library>

这是有效的XML,但下游工具希望&#10;位于发送给他们的文本中。有没有办法标记/配置Saxon(或XSL转换本身)以保留单独的安全/有效转义序列?

1 个答案:

答案 0 :(得分:1)

Saxon使用XML解析器将输入XML解析为节点树,其中字符数据是包含Unicode字符的文本节点的一部分,因此它不知道也无法区分输入是否具有&apos;'或数字字符引用,XML解析器只是将其解析为字符。

LexEv by Andrew Welch可能有助于预处理XML,以便将实体或字符引用转换为标记,然后可以将其转换回所需的词法格式。