如何在python中复制名称空间

2024-09-28 23:37:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我的输入文件是:aa.xml文件你知道吗

<?xml version="1.0" encoding="utf-8"?>
<CSDOC xmlns:cs="http://www.google-try.com/cs"
    xmlns:ci="http://www.google-try.com/ci">
    <cs:body>
        <cs:content>
            <cs:appendix>
                <blockquote>
                    <p>
                        <text>
                            This is a text to try this programm is correct or not. <ci:cite>My name is john</ci:cite> this is a test.
                        </text>
                    </p>
                </blockquote>
            </cs:appendix>
        </cs:content>
    </cs:body>
</CSDOC>

我的python代码是:

from lxml import etree
import xml.etree.ElementTree as ET
import copy
XMLDoc = etree.parse(open('aa.xml'))
v = '/CSDOC/cs:body/cs:content/cs:appendix/blockquote/p/text/ci:cite'
for Node in XMLDoc.xpath(v,namespaces={
       'cs': 'http://www.google-try.com/cs',
       'ci': 'http://www.google-try.com/ci',
       }):
    m2 = copy.deepcopy(Node)
    print(ET.tostring(m2))

输出为:

b'<ns0:cite xmlns:ns0="http://www.google-try.com/ci">My name is john</ns0:cite> this is a test.\n\t\t\t\t\t\t'ut

期望输出为:

<ci:cite>My name is john</ci:cite>

实际上,我只想复制select或xpath元素内容,但我的代码是用父元素内容复制select内容,而不使用名称空间。请建议如何仅复制具有命名空间的xpath元素内容。你知道吗


Tags: textcomcihttp内容iswwwgoogle