Как закомментировать блок тегов в XML?

795

Как закомментировать блок тегов в XML?

Т.е. как я могу закомментировать <staticText>и все внутри него, в коде ниже?

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

Я мог бы использовать, <!-- staticText-->но это только для отдельных тегов (как то, что я знаю), как //в Java и C. Я хотел бы что-то более похожее на то, как /** comment **/можно использовать в Java и C, чтобы я мог закомментировать более длинные блоки кода XML.

Jonas
источник
11
Вы должны знать, что комментарии в файле xml считаются узлами типа XmlComment . Поэтому, если вы загрузите XML- файл, эти узлы комментариев будут загружены, и вы должны их избегать или фильтровать при анализе загруженного содержимого.
El Bayames
Комментарии XML похожи на комментарии в HTML.
Сомнат Мулук

Ответы:

1136

Вы можете использовать этот стиль комментария в нескольких строках (который также существует в HTML)

<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>
Полдень шелк
источник
59
Единственное предостережение в том, что у вас будут проблемы с вложенными комментариями. Вам нужно будет либо: (1) удалить завершающий символ ">" на закрытии вложенного комментария, либо (2) удалить вложенные комментарии вообще.
undeniablyrob
1
У меня возникли проблемы с (1), поскольку у некоторых программ чтения XML (например, CruiseControl.NET) могут возникнуть проблемы с чтением вложенного комментария, в конце которого ">" удалено. В итоге мне пришлось полностью удалить комментарии.
undeniablyrob
14
@coderob На самом деле, даже - не допускается в комментариях XML. Так что, возможно, вам придется удалить все ->
0fnt
В Android Studio выберите блок, затем Ctrl + Slash, чтобы прокомментировать его (или Ctrl + Shift + Slash).
Камран Бигдели
1
Можно столкнуться с проблемами, используя --в этом типе комментария. Лучше использовать, - ->если вам нужно временно вложить комментарий. В любом случае в HTML (подмножество XML), в том числе --внутри комментария, недопустимо. Обычно с этим можно сойти, но иногда это вызывает проблемы. Таким образом, я обязательно держаться подальше от нескольких -подряда в комментариях, и если мне нужен темп гнездо комментарий, я буду размещать пробела между 2 закрытием --из -->. Это позволяет избежать случайных нечетных ошибок в XML и HTML.
SherylHohman
169

Вы можете обернуть текст несуществующей инструкцией обработки, например:

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

Вложенные инструкции обработки не допускаются, и «?>» Завершает инструкцию обработки (см. Http://www.w3.org/TR/REC-xml/#sec-pi ).

Каспер ван ден Берг
источник
11
Этот метод работал именно так, как мне было нужно, и имел дополнительное преимущество работы даже с внутренними комментариями. Я бы использовал это вместо принятого ответа, если у вас есть какая-либо форма сложного кода.
Шон Бранчо,
100 из 100 тебе @Kasper
Шива Кришна Чиппа
2
Это даже работает с искаженным XML внутри. Так что это отличное решение для временного комментирования блока.
Макс
146

Если вы спросите, потому что у вас есть ошибки с <!-- -->синтаксисом, то, скорее всего, раздел CDATA (а там и ]]>часть) находится в середине комментария. Это не должно иметь никакого значения, но идеальный и реальный мир могут иногда быть немного отделены друг от друга (особенно когда речь идет об обработке XML).

Попробуйте изменить ]]>тоже:

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

Еще одна вещь, которая приходит на ум: если содержимое вашего XML где-то содержит два дефиса, комментарий тут же заканчивается:

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

Это довольно распространенная ошибка. Он унаследован от того, как SGML обрабатывает комментарии. ( Прочитайте спецификацию XML на эту тему )

Boldewyn
источник
1
Да ... Мне всегда было трудно
разобрать
1
Большое спасибо за упоминание странного факта с двойными дефисами! У меня был случай, когда я закомментировал комментарий. Хотя я удалил старое окончание комментария, это не удалось. Пример: <! - ... <code> <! - Старый комментарий </ code> ... ->
dwettstein
Чтобы обойти ограничение двойного дефиса, вы можете заменить --на -&#45;. В большинстве случаев он должен работать так же после разкомментирования.
МИК
48

На самом деле, вы можете использовать формат <! --...--> с несколькими строками или тегами:

<!--
  ...
  ...
  ...
-->
Делан Азабани
источник
25

Здесь для комментирования мы должны написать как ниже:

<!-- Your comment here -->

Ярлыки для IntelliJ Idea и Eclipse

Для Windows и Linux:

Ярлык для комментирования одной строки:

Ctrl + /

Ярлык для комментирования нескольких строк:

Ctrl+ Shift+/

Для Mac:

Ярлык для комментирования одной строки:

cmnd + /

Ярлык для комментирования нескольких строк:

cmnd+ Shift+/

Следует помнить одну вещь: вы не можете комментировать атрибут тега XML. Например:

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

Здесь, TextViewэто тег XML и textявляется атрибутом этого тега. Вы не можете комментировать атрибуты тега XML. Вы должны прокомментировать полный тег XML. Например:

<!--<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Hello.."
    android:textStyle="bold" />-->
Авиджит Кармакар
источник
11

Вы можете легко закомментировать данные, используя это:

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

метод комментирования в xml.

SVG
источник
1

Синтаксис для XML: <!--Your comment-->

например.

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

Правила XML-комментариев

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.
источник