Dla:Jak wyodrębnić atrybut XML przy użyciu Pythona ElementTree
<foo>
<bar key="value">text</bar>
</foo>
Jak uzyskać "wartość"?
xml.findtext("./bar[@key]")
Zgłasza błąd.
Dla:Jak wyodrębnić atrybut XML przy użyciu Pythona ElementTree
<foo>
<bar key="value">text</bar>
</foo>
Jak uzyskać "wartość"?
xml.findtext("./bar[@key]")
Zgłasza błąd.
To znajdzie pierwszą instancję elementu o nazwie bar
i zwróci wartość atrybutu key
.
In [52]: import xml.etree.ElementTree as ET
In [53]: xml=ET.fromstring(contents)
In [54]: xml.find('./bar').attrib['key']
Out[54]: 'value'
wyrażenia:
./bar[@key]
To znaczy: bar
dzieci posiadające key
atrybut
Jeśli chcesz wybrać atrybut, należy użyć tego względną ekspresję:
bar/@key
To oznacza: atrybutem bar
dzieci
Oczywiście key
, należy rozważyć użycie silnika XPath w pełni zgodny jak lxml.
Nie wiem, czy to ElementTree, czy Google App Engine, ale użycie '@' podnosi SyntaxError ("nieobsługiwana składnia ścieżki (% s)"% op) SyntaxError: nieobsługiwana składnia ścieżki (@) –
@Will Merydith: Proszę, przeczytaj mój ostatnie zdanie. Basic 'ElementTree' API to nie jest narzekający silnik XPath ... –
OK. Zobaczę, czy mogę znaleźć moduł, który będzie działał na GAE/Py2.5.5. –
Co to jest komunikat o błędzie? – keegan3d