【发布时间】:2021-07-26 16:40:19
【问题描述】:
我想获取整个文档中的不同标签,然后获取它们的属性并将它们与我希望它们具有的属性进行比较(即标题标签具有 id 属性,但我想更改该属性值并且还想要它具有列属性)
这里是一个xml代码的例子:
<dita>
<topic id="id15CDB0PL09E">
<title id="id15CDB0R0VYB"><?FM MARKER [Header/Footer $1] All?>Control
</title>
<shortdesc>CONTROL</shortdesc>
<concept id="id15CDB0Q0Q4G">
<title id="id15CDB0R0VHA">General
</title>
<conbody>
<paragraph>This section
</paragraph>
</conbody>
<concept id="id156F7H00GIE">
<title id="id15CDB0R0V1W">System
</title>
<conbody>
<paragraph>Engine
</paragraph>
<paragraph>The ECU
</paragraph>
<paragraph>The aircraft
</paragraph>
<paragraph>The system
</paragraph>
</conbody>
</concept>
</concept>
</topic>
</dita>
这就是我迄今为止编写的代码。
from lxml import etree
import numpy as np
tree = etree.parse("File.xml")
root = tree.getroot()
#Listas para guardar las tags
Lista = []
Atributos = []
tags = []
attributes = []
#Muestra los tag-atributos:texto en forma de diccionario
for element in root.iter():
#Muestra las tags-atributos:texto
#print("%s - %s : %s" % (element.tag, element.attrib, element.text))
Lista.append(element.tag)
Atributos.append(element.attrib)
#Muestra los valores unicos de las tags existentes
tags = np.unique(Lista)
attributes = np.unique(Atributos)
print(tags)
print(Atributos)
tree.write("Resultado.xml")
但它会导致 TypeError: 'dict' 和 'dict' 的实例之间不支持'
想要的输出是这样的
tags[topic,title,shortdesc,concept,conbody,para]
attributes[topic:{id} title:{id,columns},shortdesc:None,concept:None,conbody:id,para:id]
【问题讨论】:
-
您可以编辑您的问题并在问题中添加来自 xml 的确切预期输出吗?
-
@JackFleeting 你去吧