разделите комментарии из XML-файла и структурной распечатки программы это

Используйте Принять заголовок, если обеспечено, URI как обработка отказа.

14
задан mklement0 2 April 2017 в 03:33
поделиться

3 ответа

Запустите ваш XML с помощью преобразования идентичности XSLT с пустым шаблоном для комментариев.

Все содержимое XML, за исключением комментариев, будет передано в вывод.

Чтобы отформатировать вывод по племени, установите output @ indent = "yes":

<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>

<!--Match on Attributes, Elements, text nodes, and Processing Instructions-->
<xsl:template match="@*| * | text() | processing-instruction()">
   <xsl:copy>
      <xsl:apply-templates select="@*|node()"/>
   </xsl:copy>
</xsl:template>

<!--Empty template prevents comments from being copied into the output -->
<xsl:template match="comment()"/>

</xsl:stylesheet>
11
ответ дан 1 December 2019 в 06:48
поделиться

Вы можете посмотреть на инструмент xmllint . У него есть несколько опций (один из которых - формат сделает красивую печать), но я не могу понять, как удалить комментарии с помощью этого инструмента.

Также посмотрите XMLStarlet , набор инструментов командной строки, позволяющих делать с xml все, что угодно. Затем выполните:

xml c14n --without-comments # XML file canonicalization w/o comments

EDIT : OP в конечном итоге использовал эту строку:

xmlstarlet c14n --without-comments old.xml > new.xml
7
ответ дан 1 December 2019 в 06:48
поделиться

Лучшим способом было бы использовать синтаксический анализатор XML для правильной обработки всех неясных угловых случаев. Но если вам нужно что-то быстрое и грязное, существует множество коротких решений с использованием регулярных выражений Perl , которых может быть достаточно.

-1
ответ дан 1 December 2019 в 06:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: