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)解析它时,抛出两个错误:
- 实体名称必须紧跟实体引用中的“&”。
- FODC0006:parse-xml-fragment() 的第一个参数不是格式正确且名称空间格式正确的 XML 片段。
如果我从输入文本中删除 &
实体,则它会正确解析。但是,如果实体在输入中被转义,为什么会导致XML解析失败?
如果你想解析 XML 然后使用 XML 一个符号需要转义为 &
我相信在纯 XPath 上下文中你可以做 parse-xml-fragment('&')
.如果您的输入在 XML 内转义,那么您当然需要转义符号 &amp;
:
<data><span>Foo</span> &amp; <span>bar</span> have been tagged.</data>
或
<data><![CDATA[<span>Foo</span> & <span>bar</span> have been tagged.]]></data>
我有一个字符串序列,需要使用 XSLT 将其解析为 XML。例如:
<span>Foo</span> & <span>bar</span> have been tagged.
当我尝试使用 fn:parse-xml-片段(使用 Saxon-PE 9.6.0.5)解析它时,抛出两个错误:
- 实体名称必须紧跟实体引用中的“&”。
- FODC0006:parse-xml-fragment() 的第一个参数不是格式正确且名称空间格式正确的 XML 片段。
如果我从输入文本中删除 &
实体,则它会正确解析。但是,如果实体在输入中被转义,为什么会导致XML解析失败?
如果你想解析 XML 然后使用 XML 一个符号需要转义为 &
我相信在纯 XPath 上下文中你可以做 parse-xml-fragment('&')
.如果您的输入在 XML 内转义,那么您当然需要转义符号 &amp;
:
<data><span>Foo</span> &amp; <span>bar</span> have been tagged.</data>
或
<data><![CDATA[<span>Foo</span> & <span>bar</span> have been tagged.]]></data>