Zugriff auf XML-Namespaces mit Doppelpunkten in SimpleXML
XML-Namespaces, die durch Doppelpunkte in Tag- und Attributnamen angezeigt werden, ermöglichen die Kombination mehrerer Formate in einem einzigen Dokument. SimpleXML bietet einen Mechanismus für den Zugriff auf Elemente und Attribute in bestimmten Namespaces mithilfe der Methoden children() und attributes().
Problem mit Namespace-Zugriff
Beim Versuch, auf Elemente zuzugreifen oder Attribute mit Doppelpunkten in ihren Namen mithilfe von SimpleXML verwenden, funktioniert die Syntax ->ns:element oder ->{'ns:element'} möglicherweise nicht. Der Doppelpunkt gibt den Namespace an, der die Verwendung der Methode children() erfordert, um vorübergehend zu diesem Namespace zu wechseln.
Lösung
Um auf Elemente und Attribute in einem bestimmten Element zuzugreifen Namespace:
Initial Namespace-Auswahl
Sie können beim Laden des XML auch den anfänglichen Namespace angeben der vierte Parameter von simplexml_load_string oder simplexml_load_file als $namespace_or_prefix. Dadurch entfällt die Notwendigkeit des anfänglichen Aufrufs von children(), z. B. $sx = simplexml_load_string($xml, null, 0, XMLNS_EG1);.
Kurzschreibweise (nicht empfohlen)
Als Abkürzung können Sie den lokalen Alias des Namespace als zweiten Parameter in children() und verwenden Attribute(). Für Konsistenz und Zukunftssicherheit ist es jedoch der bevorzugte Ansatz, sich auf die vollständigen Namespace-URIs zu verlassen.
Das obige ist der detaillierte Inhalt vonWie kann ich mit SimpleXML auf XML-Elemente und -Attribute mit Namespaces zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!