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

628

Как мне прокомментировать блок тегов в 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-кода.

  • 10
    Вы должны знать, что комментарии в файле xml считаются узлами типа XmlComment . Поэтому, если вы загрузите XML- файл, эти узлы комментариев будут загружены, и вы должны их избежать или отфильтровать при анализе загруженного содержимого.
  • 0
    Комментарии XML похожи на комментарии в HTML.
Теги:
comments

6 ответов

890
Лучший ответ

Вы можете использовать этот стиль комментария для нескольких строк (который существует и в 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>
  • 49
    Единственное предостережение в том, что у вас будут проблемы с вложенными комментариями. Вам нужно будет либо: (1) удалить завершающий символ ">" на закрытии вложенного комментария, либо (2) удалить вложенные комментарии вообще.
  • 1
    У меня возникли проблемы с (1), поскольку у некоторых программ чтения XML (например, CruiseControl.NET) могут возникнуть проблемы с чтением вложенного комментария, в конце которого ">" удалено. В итоге мне пришлось полностью удалить комментарии.
Показать ещё 3 комментария
117

Если вы спросите, потому что вы получили ошибки с синтаксисом <!-- -->, это, скорее всего, раздел 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 в этом разделе)

  • 1
    Да ... Мне всегда было сложно разобрать комментарии SGML и XML, чтобы запомнить все причуды ...
  • 1
    Большое спасибо за упоминание странного факта с двойными дефисами! У меня был случай, когда я закомментировал комментарий. Хотя я удалил конец старого комментария, это не удалось. Пример: <! - ... <code> <! - Старый комментарий </ code> ... ->
Показать ещё 1 комментарий
115

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

<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)

  • 8
    Этот метод работал именно так, как мне было нужно, и имел дополнительное преимущество работы даже с внутренними комментариями. Я бы использовал это вместо принятого ответа, если у вас есть какая-либо форма сложного кода.
  • 0
    100 из 100 тебе @Kasper
Показать ещё 1 комментарий
38

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

<!--
  ...
  ...
  ...
-->
11

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

<!-- Your comment here -->

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

Ctrl + /

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

Ctrl + Shift + /

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

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

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

  • 5
    Вы должны указать, для какой программы используются ваши ярлыки. Я не вижу ни одного указанного в исходном вопросе.
  • 4
    Какие IDE эти ярлыки для ??
Показать ещё 1 комментарий
8

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

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню