XSLT 中的 XPath 3.0 XML 解析函数

XPath 3.0 XML parsing functions in XSLT

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

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

当我尝试使用 fn:parse-xml-片段(使用 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>