У меня xml, как показано ниже. Есть несколько тегов с префиксом ce
, например <ce:title>
. Когда я запускаю приведенный ниже код с xpath, на выходе <ce:title>
заменяется <title>
. Я видел другие ссылки на SO, например Как сохранить информацию о пространстве имен при разборе HTML с l xml? , но не уверен, где и как добавить детали пространства имен.
Может кто-нибудь, пожалуйста предлагать ? Как сохранить <ce:title>
для xml ниже?
from lxml import html
from lxml.etree import tostring
with open('102277033304.xml', encoding='utf-8') as file_object:
xml = file_object.read().strip()
root = html.fromstring(xml)
for element in root.xpath('//item/book/pages/*'):
html = tostring(element, encoding='utf-8')
print(html)
XML:
<item>
<book>
<pages>
<page-info>
<page>
<ce:title>Chapter 1</ce:title>
<content>Welcome to Chapter 1</content>
</page>
<page>
<ce:title>Chapter 2</ce:title>
<content>Welcome to Chapter 2</content>
</page>
</page-info>
<page-fulltext>Published in page 1</page-fulltext>
<page-info>
<page>
<ce:title>Chapter 1</ce:title>
<content>Welcome to Chapter 1</content>
</page>
<page>
<ce:title>Chapter 2</ce:title>
<content>Welcome to Chapter 2</content>
</page>
</page-info>
<page-fulltext>Published in page 2</page-fulltext>
<page-info>
<page>
<ce:title>Chapter 1</ce:title>
<content>Welcome to Chapter 1</content>
</page>
<page>
<ce:title>Chapter 2</ce:title>
<content>Welcome to Chapter 2</content>
</page>
</page-info>
<page-fulltext>Published in page 3</page-fulltext>
</pages>
</book>
</item>