Seite 1 von 1

XPATH

Verfasst: Freitag 21. Mai 2010, 10:51
von huffman
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

Re: XPATH

Verfasst: Freitag 21. Mai 2010, 11:24
von 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'

Re: XPATH

Verfasst: Freitag 21. Mai 2010, 12:30
von lunar
Das geht auch direkt mit XPath:

Code: Alles auswählen

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