Как линеаризовать только часть 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>
Другие вопросы по тегам