XPATH

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
huffman
User
Beiträge: 6
Registriert: Montag 10. Mai 2010, 15:01

Hallo Liebes Python - Forum!

Ich möchte eine XML Datei verarbeiten die so aussieht:

Code: Alles auswählen

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE user PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<user>
  <id>123</id>
  <name>test</name>
  <qid>123sdf</qid>
</user>
Ich hab jetzt schon ein wenig probiert mit lxml jedoch bring ich nichts sinnvolles zusammen, ich möchte gerne z.B: den Inhalt von id, bzw. name auslesen. Bis jetzt hab ich es aber nur zusammengebracht id, oder name ausgeben zu lassen.

Ich hab

Code: Alles auswählen

>>>root = etree.XML(inhalt)
>>>find = etree.XPath("//id")
>>>print(find(root)[0].tag)
Leider funktioniert das nicht wirklich, habt ihr eine gute Idee?

lg huffi
BlackJack

@huffman: Du suchst den Textinhalt des Tags:

Code: Alles auswählen

In [768]: root.xpath('/user/id')
Out[768]: [<Element id at 96a1c0c>]

In [769]: root.xpath('/user/id')[0].text
Out[769]: '123'
lunar

Das geht auch direkt mit XPath:

Code: Alles auswählen

root.xpath('/user/id/text()')
Antworten