删除XSL中的双引号

时间:2014-11-05 05:48:00

标签: xml xslt xslt-1.0

我正在使用XSL 1.0,我有这种XML -

<ID>"7080"</ID>
<NAME>"Media"</NAME>
<ADDRESS>
    <STREET_1>"400 Street"</STREET_1>
</ADDRESS>

价值随双引号而来。我试图在XSL 1.0中删除这些双引号并将结果显示为:

 <ID>7080</ID>
    <NAME>Media</NAME>
    <ADDRESS>
        <STREET_1>400 Street</STREET_1>
    </ADDRESS>

另外,我已经尝试过将translate函数应用到XML的根元素但是它不起作用。 任何建议都会有所帮助!

1 个答案:

答案 0 :(得分:2)

您可以使用translate将(转义的)双引号替换为空字符。

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

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

    <xsl:template match="*/text()">
        <xsl:value-of select="translate(., '\&quot;', '')"/>
    </xsl:template>

</xsl:stylesheet>

当与上面的身份转换和shoutcase XML根元素包装一起使用时,返回:

<XML>
    <ID>7080</ID>
    <NAME>Media</NAME>
    <ADDRESS>
        <STREET_1>400 Street</STREET_1>
    </ADDRESS>
</XML>