在使用python检索xml元素时如何避免命名空间?

时间:2018-11-21 14:22:31

标签: python xml elementtree

我正在使用下面的xml文档。

<xml>
    <prot:data xmlns:prot="protocol.configmanager.vuetechnology.com">
        <id-template>
            <prot:id>Book</prot:id>
        </id-template>

        <name-template>
            <prot:name>Java</prot:name>
        </name-template>

        <dealer-template>
            <xsi:Dealer xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Eclipse</xsi:Dealer>
        </dealer-template>
    </prot:data>
</xml>

我正在尝试以下代码:

from xml.etree import ElementTree as ET
ET.register_namespace('prot', "protocol.configmanager.vuetechnology.com")
ET.register_namespace("xsi", "http://www.w3.org/2001/XMLSchema-instance")

def get_template_content(xpath):

    tree = ET.parse('cdata.xml')
    doc = tree.getroot()
    return ET.tostring(doc.find(xpath)).decode()

print(get_template_content('.//id-template/'))
print(get_template_content('.//dealer-template/'))

我需要检索xml内容。例子

实际输出:

<prot:id xmlns:prot="protocol.configmanager.vuetechnology.com">Book</prot:id>

<xsi:Dealer xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Eclipse</xsi:Dealer>

预期输出:

<prot:id>Book</prot:id>

<xsi:Dealer xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Eclipse</xsi:Dealer>

我没有什么不存在的xmlns。而且我需要它呈现的xmlns。但是这里即使通过xmlns检索的元素也不存在

如何实现?

0 个答案:

没有答案