Python Can';t从QName中删除不必要的元素
我试图在生成的xml中添加名称空间,因此我尝试并产生了以下代码:Python Can';t从QName中删除不必要的元素,python,xml,elementtree,qnames,Python,Xml,Elementtree,Qnames,我试图在生成的xml中添加名称空间,因此我尝试并产生了以下代码: from xml.etree import ElementTree as ET NS1 = "http://www.w3.org/" ET.register_namespace("xsi", NS1) qname1 = ET.QName(NS1, "D") # Element QName root = ET.Element("Databas
from xml.etree import ElementTree as ET
NS1 = "http://www.w3.org/"
ET.register_namespace("xsi", NS1)
qname1 = ET.QName(NS1, "D") # Element QName
root = ET.Element("Database", {qname1:""},xmlns="http://www.staubli.com/")
print(ET.tostring(root).decode())
这个密码给了我
<Database xmlns:xsi="http://www.w3.org/" xsi:D="" xmlns="http://www.staubli.com/" />
我想要
<Database xmlns:xsi="http://www.w3.org/" xmlns="http://www.staubli.com/">
所以我想去掉xsi:D=”“
。但是如果我从QName行中删除“D”,所有名称空间都会消失
你知道我怎样才能做到这一点吗?谢谢。我不知道如何处理etree。这是另一个解决方案
from simplified_scrapy import SimplifiedDoc
xml = '''<Database />'''
doc = SimplifiedDoc(xml)
root = doc.Database
root.setAttrs({"xmlns:xsi":"http://www.w3.org/","xmlns":"http://www.staubli.com/"})
print (doc.html) # <Database xmlns:xsi="http://www.w3.org/" xmlns="http://www.staubli.com/" />
# Or
xml = '''<Database></Database>'''
doc = SimplifiedDoc(xml)
root = doc.Database
root.setAttrs({"xmlns:xsi":"http://www.w3.org/","xmlns":"http://www.staubli.com/"})
print (doc.html) # <Database xmlns:xsi="http://www.w3.org/" xmlns="http://www.staubli.com/"></Database>
从simplified_scrapy导入SimplifiedDoc
xml=“”“
doc=SimplifiedDoc(xml)
root=doc.Database
root.setAttrs({“xmlns:xsi”:”http://www.w3.org/,“xmlns”:http://www.staubli.com/"})
打印(doc.html)#
#或
xml=“”“
doc=SimplifiedDoc(xml)
root=doc.Database
root.setAttrs({“xmlns:xsi”:”http://www.w3.org/,“xmlns”:http://www.staubli.com/"})
打印(doc.html)#
以下是更多的例子: