如何註釋掉裏面有註釋的XML部分?如何評論裏面有評論的XML部分?
下將無法正常工作,它只是註釋掉stuff0
:
<!--
stuff0
<!-- stuff1 -->
stuff2
<!-- stuff3 -->
stuff4
<!-- stuff5 -->
stuff6
-->
如何註釋掉裏面有註釋的XML部分?如何評論裏面有評論的XML部分?
下將無法正常工作,它只是註釋掉stuff0
:
<!--
stuff0
<!-- stuff1 -->
stuff2
<!-- stuff3 -->
stuff4
<!-- stuff5 -->
stuff6
-->
--
在XML註釋中是不允許的。您可以在兩個-
之間添加一個空格。如果你想做這個programmaticaly,一個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>
給出以下輸出:
<a><!--a - - b - - c--></a>
但XSLT處理器還可以輸出錯誤。根據規範,實施需要添加空間或引發錯誤。
你不知道。 XML根據其specification不支持嵌套註釋。
你有兩個選擇:
--
的所有實例。這裏的另一種方法:你可以只使用嵌套評論,就好像是在XML的支持:
<!-- Outer comment
<SomeXML> ... </SomeXML>
<!-- Inner comment
<SomeXML> ... </SomeXML>
-->
-->
然後只用這 XML文本編輯器中。您實際輸入進程的XML是您編寫的一個簡單程序的輸出,它讀取嵌套註釋XML並吐出unnested-comment-XML。
另一個類似的技巧是使用C編譯器的預處理器。我幾年前使用微軟的C++編譯器做過。編譯器cl.exe實際上調用了兩個單獨的程序cl1.exe和cl2.exe。 Cl1.exe是預處理器。所以你可以給任何東西(XML,nmake腳本等等)提供任何東西,並且它會對它進行預處理。所以像這樣的東西會工作:
<SomeXML> ... </SomeXML>
#ifdef PRODUCE_THIS
<SomeMoreXML> ... </SomeMoreXML>
#endif
可能重複[嵌套註釋在XML?](http://stackoverflow.com/questions/1324821/nested-comments-in-xml) – dogbane 2011-12-20 16:30:23