Wie kommentiere ich einen Block von Tags in XML aus?

795

Wie kommentiere ich einen Block von Tags in XML aus?

Dh Wie kann ich <staticText>und alles darin im Code unten auskommentieren?

  <detail>
    <band height="20">
      <staticText>
        <reportElement x="180" y="0" width="200" height="20"/>
        <text><![CDATA[Hello World!]]></text>
      </staticText>
    </band>
  </detail>

Ich könnte verwenden, <!-- staticText-->aber das ist nur für einzelne Tags (wie ich weiß), wie //in Java und C. Ich möchte etwas mehr wie, wie /** comment **/in Java und C verwendet werden kann, damit ich längere XML-Codeblöcke auskommentieren kann.

Jonas
quelle
11
Sie sollten wissen, dass Kommentare in einer XML- Datei als Knoten vom Typ XmlComment betrachtet werden . Wenn Sie also die XML- Datei laden, werden diese Kommentarknoten geladen, und es liegt an Ihnen, sie zu vermeiden oder zu filtern, wenn Sie den geladenen Inhalt analysieren.
El Bayames
XML-Kommentare ähneln Kommentaren in HTML.
Somnath Muluk

Antworten:

1136

Sie können diesen Kommentarstil über mehrere Zeilen hinweg verwenden (der auch in HTML vorhanden ist).

<detail>
    <band height="20">
    <!--
      Hello,
         I am a multi-line XML comment
         <staticText>
            <reportElement x="180" y="0" width="200" height="20"/>
            <text><![CDATA[Hello World!]]></text>
          </staticText>
      -->
     </band>
</detail>
Mittags Seide
quelle
59
Eine Einschränkung dabei ist, dass Sie Probleme mit verschachtelten Kommentaren haben. Sie müssen entweder: (1) das nachfolgende ">" beim Schließen des verschachtelten Kommentars entfernen oder (2) die verschachtelten Kommentare insgesamt entfernen.
unbestreitbarrob
1
Ich habe Probleme mit (1), da einige XML-Reader (z. B. CruiseControl.NET) möglicherweise Probleme beim Lesen eines verschachtelten Kommentars haben, dessen ">" am Ende entfernt wurde. Am Ende musste ich die Kommentare komplett entfernen.
unbestreitbarrob
14
@coderob Eigentlich ist sogar - in XML-Kommentaren nicht erlaubt. So müssen Sie möglicherweise die gesamte ->
0fnt
Wählen Sie im Android Studio den Block aus und dann Strg + Schrägstrich, um ihn zu kommentieren (oder Strg + Umschalt + Schrägstrich).
Kamran Bigdely
1
Bei Verwendung --dieser Art von Kommentaren kann es zu Problemen kommen . Besser zu verwenden, - ->wenn Sie einen Kommentar vorübergehend verschachteln müssen. In HTML (eine Teilmenge von XML) ist das Einfügen --in einen Kommentar ohnehin nicht gültig. Normalerweise kann man damit durchkommen, verursacht aber manchmal ein Problem. Ich bin mir also sicher -, dass ich mich in Kommentaren von mehreren in einer Reihe fern halte. Wenn ich einen Kommentar vorübergehend verschachteln muss, platziere ich Leerzeichen zwischen den beiden Schließungen --des -->. Dies vermeidet zufällig ungerade Fehler in XML und HTML.
SherylHohman
169

Sie können den Text mit einer nicht vorhandenen Verarbeitungsanweisung umschließen, z.

<detail>
<?ignore
  <band height="20">
    <staticText>
      <reportElement x="180" y="0" width="200" height="20"/>
      <text><![CDATA[Hello World!]]></text>
    </staticText>
  </band>
?>
</detail>

Verschachtelte Verarbeitungsanweisungen sind nicht zulässig und '?>' Beendet die Verarbeitungsanweisung (siehe http://www.w3.org/TR/REC-xml/#sec-pi ).

Kasper van den Berg
quelle
11
Diese Methode funktionierte genau so, wie ich es brauchte, und hatte den zusätzlichen Vorteil, dass sie sogar interne Kommentare umging. Ich würde dies über die akzeptierte Antwort verwenden, wenn Sie irgendeine Form von kompliziertem Code haben.
Sean Branchaw
100 von 100 an Sie @Kasper
Shiva krishna Chippa
2
Dies funktioniert sogar mit fehlerhaftem XML im Inneren. Dies ist also eine großartige Lösung, um einen Block vorübergehend auskommentieren zu können.
Max
146

Wenn Sie fragen, weil Sie Fehler in der <!-- -->Syntax haben, ist es höchstwahrscheinlich der CDATA-Abschnitt (und dort der ]]>Teil), der dann in der Mitte des Kommentars liegt. Es sollte keinen Unterschied machen, aber die ideale und reale Welt kann manchmal ziemlich weit voneinander entfernt sein (insbesondere wenn es um die XML-Verarbeitung geht).

Versuchen Sie auch das zu ändern ]]>:

  <!--detail>
    <band height="20">
      <staticText>
        <reportElement x="180" y="0" width="200" height="20"/>
        <text><![CDATA[Hello World!]--><!--]></text>
      </staticText>
    </band>
  </detail-->

Eine andere Sache, die mir einfällt: Wenn der Inhalt Ihres XML irgendwo zwei Bindestriche enthält, endet der Kommentar sofort dort:

<!-- <a> This is strange -- but true!</a> -->
--------------------------^ comment ends here

Das ist eine häufige Gefahr. Es wurde von der Art und Weise geerbt, wie SGML mit Kommentaren umgeht. ( Lesen Sie die XML-Spezifikation zu diesem Thema. )

Boldewyn
quelle
1
Ja ... Ich fand es immer schwierig, SGML- und XML-Parsing von Kommentaren an alle Macken zu erinnern ...
Delan Azabani
1
Vielen Dank, dass Sie die seltsame Tatsache mit den doppelten Bindestrichen erwähnt haben -! Ich hatte einen Fall, in dem ich einen Kommentar auskommentierte. Obwohl ich das alte Kommentarende entfernt habe, ist es fehlgeschlagen. Beispiel: <! - ... <code> <! - Alter Kommentar </ code> ... ->
dwettstein
Den Doppel-Bindestrich Zur Umgehung Einschränkung Sie ersetzen können --mit -&#45;. In den meisten Fällen sollte es nach dem Kommentieren genauso funktionieren.
Mik
48

Tatsächlich können Sie das Format <! --...--> mit mehreren Zeilen oder Tags verwenden:

<!--
  ...
  ...
  ...
-->
Delan Azabani
quelle
25

Hier zum Kommentieren müssen wir wie folgt schreiben:

<!-- Your comment here -->

Verknüpfungen für IntelliJ Idea und Eclipse

Für Windows & Linux:

Verknüpfung zum Kommentieren einer einzelnen Zeile:

Ctrl + /

Verknüpfung zum Kommentieren mehrerer Zeilen:

Ctrl+ Shift+/

Für Mac:

Verknüpfung zum Kommentieren einer einzelnen Zeile:

cmnd + /

Verknüpfung zum Kommentieren mehrerer Zeilen:

cmnd+ Shift+/

Beachten Sie, dass Sie ein Attribut eines XML-Tags nicht kommentieren können. Zum Beispiel:

<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    <!--android:text="Hello.."-->
    android:textStyle="bold" />

Hier TextViewist ein XML-Tag und textein Attribut dieses Tags. Sie können keine Attribute eines XML-Tags kommentieren. Sie müssen das vollständige XML-Tag kommentieren. Zum Beispiel:

<!--<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Hello.."
    android:textStyle="bold" />-->
Avijit Karmakar
quelle
11

Sie können die Daten einfach folgendermaßen auskommentieren:

<!-- 
 <data>
        <data-field1></data-field1>
        <data-field2></data-field2>
        <data-field3></data-field3>
 </data>
-->

Methode zum Kommentieren in XML.

svg
quelle
1

Syntax für XML: <!--Your comment-->

z.B.

   <?xml version = "1.0" encoding = "UTF-8" ?>
   <!--here is your comment :) -->
   <class_list>   
   <student>
   <name></name>
   <grade>A</grade>
   </student>
   </class_list>

Regeln für XML-Kommentare

Comments cannot appear before XML declaration.
Comments may appear anywhere in a document.
Comments must not appear within attribute values.
Comments cannot be nested inside the other comments.
TheSuMiT.
quelle