當前,我嘗試輸出包含「&」符號的某個XML標記(&)時遇到了一些麻煩。XSLT在遇到&符號時崩潰
所以更具體一點,當我嘗試輸出下面的標籤。我得到一個錯誤
<fullname>Ben & Jerry</fullname>
然而使用下面的標籤運行良好
<fullname>Ben and Jerry</fullname>
我已經用下面的代碼
<xsl:template match="fullname">
<xsl:apply-templates/>
</xsl:template>
嘗試過了,我也試過
<xsl:template match="fullname">
<xsl:value-of-select="." disable-output-escaping="Yes"/>
</xsl:template>
兩者都導致錯誤要麼。我怎麼得到它的工作的唯一方法是使用CDATA這樣
<fullname><![CDATA[Ben & Jerry]]></fullname>
不過,我有過我收到的XML文件沒有控制權,並因此,這不是一個可行的選擇。在XSLT中我可以做些什麼來規避/解決這個問題?
謝謝!
如果它包含未轉義的&,它是** not ** xml。告訴誰提供你的XML他們失敗了。 – 2013-03-19 17:23:02
謝謝唐羅比。但是,我無法控制輸出的XML文件。因此,我試圖找到一種解決方法。理想情況下,雖然數據中仍包含「與」符號,但如果XSLT只忽略符號,我也會很高興。 – 2013-03-19 17:39:03
@Jaco:「無控制」是一個相對術語。如果你被要求產生100個方程,其中兩個偶數加起來爲奇數,你會說這是不可能的:這些要求是錯誤的。當你被要求生產不是XML的XML時也是如此。類似的考慮適用於輸入XML。我並不是說你不能爲錯誤的輸入或錯誤的要求考慮解決方法,但是當我聽到「我無法控制」的時候,我總是會想,「這不完全正確。」 – LarsH 2013-03-19 18:22:14