XSLT - 匹配似乎不起作用

时间:2014-03-11 04:19:23

标签: xslt match

我的变换中有这一行:

<xsl:template match="simplesect[@kind='since']">

当我将其应用于以下内容时:

    <detaileddescription>
    <para><simplesect kind="since">
    <para>yesterday</para>
    </simplesect></para></detaileddescription>

我希望它能奏效。

但是,我注意到和标签之间需要存在空间。

所以以下匹配的地方不是

    <detaileddescription>
    <para> <simplesect kind="since">
    <para>yesterday</para>
    </simplesect></para></detaileddescription>

我很难过。任何想法为什么或在这里打电话我?现在,我唯一的解决方案是查找<para><simplesect @kind="since">的每个实例并将其更改为<para> <simplesect @kind=since。请注意<para><simplesect>

之间的空格

1 个答案:

答案 0 :(得分:1)

此样式表:

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

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

    <xsl:template match="simplesect[@kind='since']">
        <modified><xsl:apply-templates/></modified>
    </xsl:template>

</xsl:stylesheet>

当应用于第一个输入时,产生:

<?xml version="1.0" encoding="utf-8"?>
<detaileddescription>
    <para>
        <modified>
            <para>yesterday</para>
        </modified>
    </para>
</detaileddescription>