我在尝试输出包含&符号(&)的某个XML标记时遇到了一些麻烦.
更具体的是,当我尝试输出以下标签时.我收到一个错误
<fullname>Ben & Jerry</fullname>
Run Code Online (Sandbox Code Playgroud)
然而,使用以下标记可以正常运行
<fullname>Ben and Jerry</fullname>
Run Code Online (Sandbox Code Playgroud)
我用以下代码尝试过它
<xsl:template match="fullname">
<xsl:apply-templates/>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)
我也尝试过
<xsl:template match="fullname">
<xsl:value-of-select="." disable-output-escaping="Yes"/>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)
两者都导致了错误.我如何使它工作的唯一方法是使用像这样的CDATA
<fullname><![CDATA[Ben & Jerry]]></fullname>
Run Code Online (Sandbox Code Playgroud)
但是,我无法控制我收到的XML文件,因此这不是一个可行的选择.我可以在XSLT中做些什么来规避/解决这个问题吗?
谢谢!
Ampersand不能在格式良好的XML中出现.你的榜样应该是
<fullname>Ben & Jerry</fullname>
Run Code Online (Sandbox Code Playgroud)
我不认为你能用任何XSLT处理器解决这个问题.您需要修复生成XML的任何内容,以便格式良好.