Как линеаризовать только часть XML-файла?
Я борюсь с огромным XML-файлом (размером более 400 МБ), и мне нужно было бы перевести его на части. Я попытался отредактировать его с помощью плагинов Notepad++ и XML Tools, но он все линаризует. Поскольку английский не является моим родным языком, возможно, пример прояснит ситуацию.
Я хочу этот:
<Example>
<Data>
<First>abcd</First>
<Second>efgh</Second>
<Third>ijkl</Third>
</Data>
<Data>
<Fourth>mnop</Fourth>
<Fifth>qrst</Fifth>
<Sixth>uvwx</Sixth>
</Data>
<Data>
<Seventh>1234</Seventh>
<Eigth>5678</Eigth>
<Ninth>90ab</Ninth>
</Data>
</Example>
Чтобы быть распечатанным так:
<Example>
<Data><First>abcd</First><Second>efgh</Second><Third>ijkl</Third></Data>
<Data><Fourth>mnop</Fourth><Fifth>qrst</Fifth><Sixth>uvwx</Sixth></Data>
<Data><Seventh>1234</Seventh><Eigth>5678</Eigth><Ninth>90ab</Ninth></Data>
</Example>
Есть идеи? Все предложения приветствуются.
1 ответ
Ваш пример просто удаляет некоторые пробелы: это все, что вам нужно сделать?
С помощью потокового преобразователя XSLT 3.0 вы можете добиться примера преобразования, используя:
<xsl:transform version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:strip-space elements="Data"/>
<xsl:mode on-no-match="deep-copy"/>
</xsl:transform>