如何注释掉里面有注释的XML部分?

dov*_*mir 24 xml comments

如何注释掉里面有注释的XML部分?

以下内容不起作用,只会注释掉stuff0:

<!--
stuff0
<!-- stuff1 -->
stuff2
<!-- stuff3 -->
stuff4
<!-- stuff5 -->
stuff6
-->
Run Code Online (Sandbox Code Playgroud)

The*_*ler 8

我知道你不应该这样做。我的意思是,按照XML规范,您不应该这样做。停止阅读此答案。这是骇客!

话虽如此...我真的很需要它,所以这是窍门。用未使用的处理指令将要注释的部分括起来:

<some-tags />

<?comment
  <!-- traditional comment 1 -->
  <badtag prop1="123">
    <!-- traditional comment 2 -->        
  </badtag>
  <!-- traditional comment 3 -->
?>

<rest-of-my-tags />
Run Code Online (Sandbox Code Playgroud)

您可以使用任何未使用的处理指令。我选择“注释”作为未使用的处理指令,因此我以开头大注释,<?comment以结尾?>

几乎所有单词都可以用作处理指令,因为大多数时候并没有真正使用它们。我的意思是,您最后一次使用它是什么时候?


Ond*_*cny 7

你没有.XML根据其规范不支持嵌套注释.


Vin*_*net 6

--XML注释中不允许使用.您可以在两者之间添加空格-.如果你想以编程方式进行,XSLT可能会为你完成这项工作.例如,以下XSLT:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  version="2.0">
    <xsl:template match="/">
        <a>
            <xsl:comment select="'a -- b -- c'"/>
        </a>
    </xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)

给出以下输出:

<a><!--a - - b - - c--></a>
Run Code Online (Sandbox Code Playgroud)

但是XSLT处理器也可能输出错误.根据规范,由实现来添加空间或引发错误.