XPath 3.0 XSLT中的XML解析功能



我有一个字符串序列,我需要使用XSLT将其解析为XML。例如:

<span>Foo</span> & <span>bar</span> have been tagged.

当我尝试使用fn:parse-xml-fragment(使用Saxon-PE 9.6.0.5)解析这个时,抛出两个错误:

  1. 实体名称必须紧跟在实体引用中的'&'后面。
  2. FODC0006: parse-xml-fragment()的第一个参数不是一个格式良好且名称空间格式良好的XML片段。

如果我从输入文本中删除&实体,那么它将正确解析。但是,如果实体在输入中进行了转义,为什么会导致XML解析失败呢?

如果您想解析XML,那么使用XML需要将与符号转义为&,我确信在纯XPath上下文中您可以执行parse-xml-fragment('&')。如果你的输入是在XML中转义的,那么你当然需要转义一个&符号,如&:

<data>&lt;span&gt;Foo&lt;/span&gt; &amp;amp; &lt;span&gt;bar&lt;/span&gt; have been tagged.</data>

<data><![CDATA[<span>Foo</span> &amp; <span>bar</span> have been tagged.]]></data>

相关内容

  • 没有找到相关文章

最新更新