我正在使用下面的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检索的元素也不存在
如何实现?