Dot Net - 具有特殊字符实体引用的XML文件的XSL转换

时间:2014-05-23 11:36:52

标签: xml xslt special-characters

我有一个XML文件,我正在应用XSL转换来获取Dot Net中的纯文本/ CSV文件。

问题是我的XML文件有像“& amp;”这样的特殊字符。为“&”。当我用XSL转换它时我得到相同的“& amp;”在输出以及我正在寻找“&”。

我正在寻找一个选项,我可以对“& amp;”进行一些XSL转换转换为“&”。

示例:
XML源数据:Adam& amp;夏娃 从XSL到现在的输出:Adam&夏娃 期望的输出:亚当&伊芙

有什么建议吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

您可以使用disable-output-escaping="yes",例如:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>

    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()" />
        </xsl:copy>
    </xsl:template>

    <xsl:template match="name">
        <xsl:copy>
            <xsl:value-of select="." disable-output-escaping="yes" />
        </xsl:copy>
    </xsl:template>
</xsl:stylesheet>

答案 1 :(得分:0)

如果你有例如。

<foo>Adam &amp; Eve</foo>

在您的XML输入和XSLT集

<xsl:output method="text"/>

<xsl:template match="foo">
  <xsl:value-of select="."/>
</xsl:template>

然后我确信结果是Adam & Eve。如果你的&符号被转义,那么你可能有错误的输出方法。