Он работает с IronPython 2.7 в Dynamo. Мне нужно получить значение из конкретной заметки в очень большом xml. Я сделал пример xml, так что вам лучше понять проблему. Так что мне нужно получить значение «lvl», но только в примечании «to».python 2.7 xml - получить значение из определенной заметки ниже заметки
В настоящее время я получаю сообщение об ошибке:
TypeError: list objects are unhashable"
для линии:
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>
И вот мой код:
import clr
import sys
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *
sys.path.append("C:\Program Files (x86)\IronPython 2.7\Lib")
import xml.etree.ElementTree as ET
xml="note.xml"
xpathstr=".//yolo"
match ="lvl"
list=[]
tree = ET.parse(xml)
root = tree.getroot()
specific = root.findall(xpathstr)
for elem in specific:
list.extend(elem.findall(match))
print tree, root, specific, list
Hi thx за вашу помощь! Теперь я знаю, как правильно передать xpath. Задача решена. – Yuli
Вы можете принять ответ, используя кнопки слева от ответа, если он ответил на ваш вопрос, если хотите –