Использование XSLT, как я могу прокомментировать один узел, не комментируя его дочерние элементы?Комментарий к одному узлу
У меня есть этот HTML:
<html>
<body>
<div class="blah" style="blahblah">
<span>
<p>test</p>
</span>
</div>
</body>
</html>
Я хотел бы этот выход:
<html>
<body>
<!-- div class="blah" style="blahblah" -->
<span>
<p>test</p>
</span>
<!-- /div -->
</body>
</html>
Это ключ, что дети узлы копируются и любые атрибуты закомментированного узла также копируются.
Следующее - моя лучшая попытка, но не работает. Процессор XSLT кричит: «Узлы атрибутов и пространства имен не могут быть добавлены к родительскому элементу после добавления текста, комментария, узла pi или подэлемента».
<?xml version="1.0" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- IdentityTransform -->
<xsl:template match="/ | @* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()" />
</xsl:copy>
</xsl:template>
<xsl:template match="div">
<xsl:text disable-output-escaping="yes"><!--</xsl:text>
<xsl:copy>
<xsl:text disable-output-escaping="yes">--></xsl:text>
<xsl:apply-templates select="@* | node()"/>
<xsl:text disable-output-escaping="yes"><!--</xsl:text>
</xsl:copy>
<xsl:text disable-output-escaping="yes">--></xsl:text>
</xsl:template>
</xsl:stylesheet>
Я не могу понять, почему вы не должны использовать '' , –
Принимая этот ответ, потому что он короче, чем у Лего, и кажется более простым. – DaVinci007
@torazaburo Я попробовал, но не смог заставить его работать. Кроме того, не создаст ли он плохую вложенность? – DaVinci007