PHP-Bibliothek zum Parsen von XML mit Doppelpunkten in Tag-Namen?

Ich habe versucht, SimpleXML zu verwenden, aber XML scheint nicht so zu sein:

sample italic text 

Also, welche Bibliothek wird Tags behandeln, die so aussehen (habe einen Doppelpunkt in ihnen)?

Angenommen, Sie haben eine solche XML-Datei.

  italic 2010-02-01 06:00  

Sie können auf ’em’ wie $xml->children('xhtml', true)->div->em; zugreifen: $xml->children('xhtml', true)->div->em;

Wenn Sie jedoch das Datumsfeld haben möchten, ist dies: $xml->children('xhtml', true)->div->date; funktioniert nicht , weil Sie im xhtml-Namespace feststecken.

Sie müssen ‘children’ erneut ausführen, um zum Standardnamespace zurückzukehren:

 $xml->children('xhtml', true)->div->children()->date; 

Wenn Sie es schnell beheben wollen, tun Sie dies (ich mache es, wenn ich mich faul fühle) :

 // Will replace : in tags and attributes names with _ allowing easy access $xml = preg_replace('~( 

Dies konvertiert in und in . Art von Hacky und kann fehlschlagen, wenn CDATA NameSpaced XML-Container-Blöcke beteiligt sind oder UNICODE-Tag-Namen, aber ich würde sagen, dass Sie normalerweise sicher sind, es zu benutzen (hat mich noch nicht gescheitert) .

Colon bezeichnet einen XML-Namespace. Das DOM unterstützt Namespaces gut.

Ich denke nicht, dass es eine gute Idee ist, den Doppelpunkt loszuwerden oder ihn durch etwas anderes zu ersetzen, wie einige Leute vorgeschlagen haben. Sie können einfach auf Elemente mit einem Namespacepräfix zugreifen. Sie können entweder die URL, die den Namespace identifiziert, als Argument an die children () -Methode übergeben oder das Namespacepräfix und “true” an die Methode children () übergeben. Der zweite Ansatz erfordert PHP 5.2 und höher.

SimpleXMLElement :: Kinder