XSLT转换以删除元素内的空间

时间:2013-06-05 06:51:41

标签: xml xslt whitespace removing-whitespace

我对XSLT的东西有点新鲜。问题是我需要摆脱输入XML中某些元素内的空格。例如

<element id="12">


</element>

应该转化为

<element id="12"></element>

以及

<element id="12">

something

</element>

<element id="12">something</element>

并且xml的其余部分应保持不变。使用xsl可以实现这种转换吗?

2 个答案:

答案 0 :(得分:4)

您喜欢做的是Identity transform

尝试这样的事情:

<?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:strip-space elements="*"/>

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

    <xsl:template match="text()">
        <xsl:value-of select="normalize-space()"/>
    </xsl:template>

</xsl:stylesheet>

答案 1 :(得分:1)

希望,这会对你有帮助。

<xsl:template match="text()">
    <xsl:value-of select="fn:normalize-space()"/> <!-- fn is the prefix bound to xpath functions -->
</xsl:template>