Python2.7XML—从注释下面的特定注释中获取值
他说我在迪纳摩与IronPython 2.7合作。 我需要从一个真正大的xml中的特定注释中获取值。我制作了一个xml示例,以便您更好地理解这个问题。 所以我需要得到“lvl”的值,但只在注释“to”中 在我出错的那一刻: TypeError:列表对象不可损坏“ 对于第行:Python2.7XML—从注释下面的特定注释中获取值,python,xml,elementtree,Python,Xml,Elementtree,他说我在迪纳摩与IronPython 2.7合作。 我需要从一个真正大的xml中的特定注释中获取值。我制作了一个xml示例,以便您更好地理解这个问题。 所以我需要得到“lvl”的值,但只在注释“to”中 在我出错的那一刻: TypeError:列表对象不可损坏“ 对于第行: list.extend(elem.findall(match)) 我做错了什么?有更好/更简单的方法吗 以下是示例xml: <?xml version="1.0" encoding="UTF-8"?> <
list.extend(elem.findall(match))
我做错了什么?有更好/更简单的方法吗
以下是示例xml:
<?xml version="1.0" encoding="UTF-8"?>
<note>
<note2>
<yolo>
<to>
<type>
<game>
<name>Jani</name>
<lvl>111111</lvl>
<fun>2222222</fun>
</game>
</type>
</to>
<mo>
<type>
<game>
<name>Bani</name>
<lvl>3333333</lvl>
<fun>44444444</fun>
</game>
</type>
</mo>
</yolo>
</note2>
</note>
如果需要获取“lvl”的值,但只能在注释“to”中获取,则可以使用一个xpath:
import xml.etree.ElementTree as ET
xml="note.xml"
xpathstr=".//to//lvl"
tree = ET.parse(xml)
root = tree.getroot()
specific = root.findall(xpathstr)
list=[]
for elem in specific:
list.append(elem.text)
print (list)
给出:
['111111']
如果您知道有包含“lvl”的元素“type”和“game”,您可以选择使用xpath“//to/type/game/lvl”或者如果元素“to”必须包含在“yolo”中,则使用“//yolo/to/type/game/lvl”
您可能想使用list.append而不是list.extend,但可能不想,我不知道您的其余代码。您好,谢谢您的帮助!现在我知道如何正确处理xpath。问题已解决。如果答案已经回答了您的问题,您可以使用答案左侧的按钮接受答案,如果它回答了您的问题,如果您愿意的话
['111111']