如何更改&到&在评论节点中使用xslt

时间:2019-11-26 09:21:07

标签: xslt xslt-2.0

转换&放大器后是否有可能?在评论Node
我的XML

    <?xml version="1.0" encoding="UTF-8"?>
<root>
    <name>ABCD</name>
    <!--<querycontent><query-number>AQ1:A (Klumin & Koloskov 1982, Lucas 1977, McMurtry 1974, Patrick & Monahan 1957, Plante 1973, Scherer & Cantelon 2013)</query-number></querycontent>-->
</root>

我的XSL

    <?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    exclude-result-prefixes="xs"
    version="2.0">
    <xsl:output method="xml" omit-xml-declaration="no"/>
    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>
    <xsl:template match="comment()">
        <xsl:value-of select="." disable-output-escaping="yes"/>
    </xsl:template>
</xsl:stylesheet>

我要输出:

    <?xml version="1.0" encoding="UTF-8"?><root>
    <name>ABCD</name>
    <querycontent><query-number>AQ1:A (Klumin &amp; Koloskov 1982, Lucas 1977, McMurtry 1974, Patrick &amp; Monahan 1957, Plante 1973, Scherer &amp; Cantelon 2013)</query-number></querycontent>
</root>

如果我要转换XML,则仅更改注释节点,而没有实体更改。
我的输出是:

    <?xml version="1.0" encoding="UTF-8"?><root>
    <name>ABCD</name>
    <querycontent><query-number>AQ1:A (Klumin & Koloskov 1982, Lucas 1977, McMurtry 1974, Patrick & Monahan 1957, Plante 1973, Scherer & Cantelon 2013)</query-number></querycontent>
</root>

1 个答案:

答案 0 :(得分:1)

您可以更改:

<xsl:value-of select="." disable-output-escaping="yes"/>

收件人:

<xsl:value-of select="replace(., '&amp;', '&amp;amp;')" disable-output-escaping="yes"/>

但是,这只是在其他两个技术之上又打了一个hack。真正的问题是注释的内容不是XML。