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.
ich versuche momentan für ein Projekt spezifische tags einer xml auszulesen.
Ich weis allerdings nur wie man alle auf einmal ausgibt (das heißt das ich nicht weis wie man nur einen ausgibt)
Und da ich nicht der "beste" Programmierer bin habe ich keine Ahnung wie ich dies machen könnte.
@Felix Eckert: die Frage ist halt, wie Du das eine Element identifizieren willst, dann ist das Suchen und Finden auch kein Problem mit `find`. Was hast Du denn schon versucht?
Das ist ja das ding, ich arbeite sehr wenig mit XML und kenne mich deshalb garnicht mit dem xml package aus :K . aber danke fr den tipp mit find!
UPDATE: Ich habe nun einwenig mit dem find rumprobiert und damit keine Lösung gefunden
Ich habe jetzt ne weile gesucht, habe ne methode auf stackabuse gefunden, musste zwar nen bisschen umplanen aber jetzt funktioniert es .
Trotzdem danke für den Tipp!
from xml.dom import minidom
# XML laden
mydoc = minidom.parse('doc.xml')
items = mydoc.getElementsByTagName('tag_name')
# Eine spezifische Attribute
print(items[0].attributes['name'].value)
# Alle Attribute
for elem in items:
print(elem.attributes['Attribute'].value)
# Die Daten von einem Spezifischen tag
print(items[0].firstChild.data)
print(items[1].childNodes[0].data)
# Alle Daten
for elem in items:
print(elem.firstChild.data)
Du solltest statt minidom ElementTree verwenden. Damit ist das arbeiten deutlich einfacher. Unter anderem weil der Whitespace zwischen den Tags nicht einfach auch als DOM-Elemente auftaucht.
import xml.etree.ElementTree as et
document = et.ElementTree(file="doc.xml")
# Erstes Element <tag_name>
item = document.find('.//tag_name')
# Eine spezifische Attribute
print(item.attrib['name'])
# Die Daten von einem Spezifischen tag
print(items.text)
# Alle Elemente
items = document.findall('.//tag_name')
for elem in items:
print(elem.attrib)
print(elem.text)
# Inhalt von erstem Element
print(document.findtext('.//tag_name'))
import xml.etree.ElementTree as et
document = et.ElementTree(file="doc.xml")
# Erstes Element <tag_name>
item = document.find('.//tag_name')
# Eine spezifische Attribute
print(item.attrib['name'])
# Die Daten von einem Spezifischen tag
print(items.text)
# Alle Elemente
items = document.findall('.//tag_name')
for elem in items:
print(elem.attrib)
print(elem.text)
# Inhalt von erstem Element
print(document.findtext('.//tag_name'))
Vielen dank! Das macht es einfacher mit auslesen! dann habe ich nicht mehr 30 zeilen mit aulese code!