Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich mit SimpleXML auf XML-Knotennamen mit Bindestrich zugreifen?

Wie kann ich mit SimpleXML auf XML-Knotennamen mit Bindestrich zugreifen?

Susan Sarandon
Freigeben: 2024-12-05 22:02:14
Original
655 Leute haben es durchsucht

How Can I Access Hyphenated XML Node Names Using SimpleXML?

XML-Knoten mit getrennten Namen in SimpleXML lesen

SimpleXML, eine PHP-Bibliothek zum Parsen von XML-Dokumenten, kann beim Lesen von Knoten mit getrennten Namen auf Schwierigkeiten stoßen Namen. Betrachten Sie zum Beispiel das folgende XML:

<?xml version="1.0" encoding="UTF-8"?>
<gnm:Workbook xmlns:gnm="http://www.gnumeric.org/v10.dtd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.gnumeric.org/v9.xsd">
  <office:document-meta xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" office:version="1.1">
    <office:meta>
      <dc:creator>Mark Baker</dc:creator>
      <dc:date>2010-09-01T22:49:33Z</dc:date>
      <meta:creation-date>2010-09-01T22:48:39Z</meta:creation-date>
      <meta:editing-cycles>4</meta:editing-cycles>
      <meta:editing-duration>PT00H04M20S</meta:editing-duration>
      <meta:generator>OpenOffice.org/3.1$Win32 OpenOffice.org_project/310m11$Build-9399</meta:generator>
    </office:meta>
  </office:document-meta>
</gnm:Workbook>
Nach dem Login kopieren

Der Versuch, den Knoten „office:document-meta“ mit der Methode „children()“ von SimpleXML zu lesen, führt zu dem Fehler „Verwendung von undefiniertem konstantem Meta – angenommen ‚Meta‘“. Dies liegt daran, dass SimpleXML den Bindestrich als Subtraktionsoperator interpretiert.

Lösung

Um dieses Problem zu lösen, verwenden Sie geschweifte Klammern anstelle des Bindestrichs:

$officeXML->{'document-meta'}
Nach dem Login kopieren

Mit dieser Syntax können Sie auf die Dokument-Meta zugreifen Knoten.

Zugriff auf Attribute mit Bindestrich

Während Elementnamen mit Bindestrich die Syntax mit geschweiften Klammern erfordern, kann auf Attribute mit Bindestrich mit der regulären Array-Notation zugegriffen werden:

$root = new SimpleXMLElement($xml);
echo $root->{'hyphenated-element'}['hyphenated-attribute']; // prints "bar"
Nach dem Login kopieren

Weitere Beispiele finden Sie in der SimpleXML Basics-Dokumentation.

Das obige ist der detaillierte Inhalt vonWie kann ich mit SimpleXML auf XML-Knotennamen mit Bindestrich zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage