Я хочу сделать это преобразование
потому что я хочу удалить некоторые записи
(в данном случае 'cd') быстро из
XML-файл. Использование однострочного формата
помог бы мне.
Не проще ли было бы просто удалить нужные "записи" из XML с помощью XSLT? Это было бы проще, чем изменить разрывы / пробелы с помощью XSLT, а затем использовать что-то еще, чтобы удалить то, что вам не нужно. (Что вы планировали использовать? Собирались ли вы удалить все строки, которые начинались с <cd>
?)
В XSLT просто отбрасывать ненужные данные, если вы используете преобразование идентичности. Вы можете добавить пустой шаблон для всего, что не хотите хранить.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="cd"/>
</xsl:stylesheet>
Используя ваш ввод XML, эта таблица стилей выдаст следующий вывод:
<?xml version="1.0" encoding="UTF-8"?>
<catalog/>