去除XSL双引号(Removing double quotes in XSL)

2019-10-21 05:40发布

我使用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>

另外,我已经尝试过了申请转换功能的XML的根元素,但它无法正常工作。 任何建议将帮助!

Answer 1:

您可以使用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>


文章来源: Removing double quotes in XSL