Сохранить XML-теги - реализация Python DOM - PullRequest
0 голосов
/ 27 апреля 2011

Я только что закончил просмотр через Python DOM API и, похоже, не могу найти то, что ищу.

Я в основном хочу сохранить теги XML при обходе черезДерево DOM.Идея состоит в том, чтобы напечатать имя тега и соответствующие атрибуты, которые я позже хочу преобразовать в XML-файл.

<book name="bookname" source="/home/phiri/Book/book.xml"
      xmlns:xi="http://www.w3.org/2001/XInclude">
  <chapter>
    <page>page1</page>
    <page>page2</page>
  </chapter>
  <chapter>
    <page>page1</page>
    <page>page2</page>
    <page>Page3</page>
  </chapter>
</book>

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

<book name="bookname" source="/home/phiri/Book/book.xml"
      xmlns:xi="http://www.w3.org/2001/XInclude">
  <chapter></chapter>
  <chapter></chapter>
</book>

Есть ли альтернативный пакет XML, который я мог бы использовать для сохранения результатов, которые я получаю при извлечении содержимого с использованием Python?

1 Ответ

0 голосов
/ 27 апреля 2011

Простой способ получить вывод, отправленный вами из ввода, - переопределить XSLT-преобразование идентичности . Похоже, вы хотите удалить все текстовые узлы и все элементы, которые имеют более двух предков, поэтому вы просто добавили бы пустые шаблоны для них:

<xsl:template match="text()"/>

<xsl:template match="*[count(ancestor::*) &gt; 2]"/>

Обычно лучший способ использовать XSLT в Python - это модуль libxml2 . Если вам не нужно чисто Python-решение, в этом случае вы застряли, не используя XSLT, потому что никто еще не создал чистый Python XSLT-процессор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...