如何使用XSLT 2.0在xml中转义多个&(和号)

时间:2014-08-11 06:41:16

标签: xml xslt-2.0

我在xml的&标记值中出现的时间超过了<Description>,如下所示:

<str name="Description">Type: Fan & Heatsinks<br/>Compatible CPU: Intel<br/>Heatsink Material: Copper (base and heat-pipes), aluminium (cooling fins), soldered joints & nickel plating<br/></str>

我想使用XSLT

在xml中转义多个&

xslt代码如下:

<xsl:variable name="Description" select="str[@name = 'ShortDescription']"/>

<Description><xsl:value-of select="$Description" disable-output-escaping="yes"  /></Description>

我在&

上收到此错误
XML Parsing Error: not well-formed

请告诉我如何处理这个

提前致谢

1 个答案:

答案 0 :(得分:2)

您的输入格式不正确XML:&必须始终转义为&amp;。 XSLT无法处理格式不正确的XML的输入数据。

修复错误数据的最佳方法是始终纠正创建错误数据的程序。如果你真的找不到办法,你必须编写某种修复工具,修复工具的细节取决于理解输入中存在哪种问题。您不能使用XML工具进行修复,因为输入不是XML;你必须使用像Perl这样的东西。 (或者,如果您真的想使用XSLT,可以使用unparsed-text()读取输入以绕过XML解析器。)