Heim  >  Artikel  >  Backend-Entwicklung  >  So konvertieren Sie XML+ in ein PHP+-Array

So konvertieren Sie XML+ in ein PHP+-Array

DDD
DDDOriginal
2023-06-02 11:54:19884Durchsuche

Methode zum Konvertieren von XML+ in ein PHP+-Array: 1. Verwenden Sie die Syntax „simplexml_load_string()“, um den XML-String in ein SimpleXmlElement-Objekt zu konvertieren. 2. Verwenden Sie die Syntax „json_decode()“, um das SimpleXmlElement zu konvertieren Objekt in PHP-Array; 3. Verwenden Sie die Syntax „foreach()“, um die Elementelemente zu durchlaufen. 4. Verwenden Sie die Syntax „getDocNamespaces()“, um den XML-String-Namespace zu verarbeiten.

So konvertieren Sie XML+ in ein PHP+-Array

Die Betriebsumgebung dieses Tutorials: Windows 10-System, PHP-Version 8.1.3, Dell G3-Computer

#🎜 🎜#PHP Es ist eine sehr beliebte Programmiersprache, die problemlos mit Variablentypen wie Strings und Arrays umgehen kann. In PHP können Sie einen XML-String als Datenquelle verwenden und ihn dann zur Verarbeitung in ein Array konvertieren.

Methode zum Konvertieren von XML+ in ein PHP+-Array:

1. XML-String in SimpleXmlElement-Objekt konvertieren#🎜🎜 ## 🎜🎜#In PHP müssen Sie zunächst den XML-String in ein SimpleXmlElement-Objekt konvertieren. Dazu können Sie die in PHP integrierte Funktion simplexml_load_string() verwenden. Hier ist ein Beispiel:

$xml_string = &#39;<root><item><name>PHP</name><year>1995</year></item><item>
<name>MySQL</name><year>1995</year></item></root>&#39;;
$xml = simplexml_load_string($xml_string);

Hier ist $xml_string der XML-String, der in ein SimpleXmlElement-Objekt konvertiert werden soll. simplexml_load_string() konvertiert einen XML-String in ein SimpleXmlElement-Objekt und weist es der Variablen $xml zu.

2. Konvertieren Sie das SimpleXmlElement-Objekt in ein PHP-Array.

Als nächstes müssen Sie das SimpleXmlElement-Objekt in ein PHP-Array konvertieren. Dies kann mit der in PHP integrierten Funktion json_decode() erreicht werden. Es ist jedoch zu beachten, dass das SimpleXmlElement-Objekt vor der Konvertierung in einen JSON-String konvertiert werden muss. Hier ist ein Beispiel:

$xml_string = &#39;<root><item><name>PHP</name><year>1995</year></item><item>
<name>MySQL</name><year>1995</year></item></root>&#39;;
$xml = simplexml_load_string($xml_string);

$json = json_encode($xml);
$array = json_decode($json,TRUE);

Im obigen Beispiel konvertiert simplexml_load_string() die XML-Zeichenfolge in ein SimpleXmlElement-Objekt und verwendet dann json_encode(), um das SimpleXmlElement-Objekt in eine JSON-Zeichenfolge zu konvertieren. Verwenden Sie abschließend json_decode(), um den JSON-String in ein PHP-Array zu konvertieren.

3. Attribute in XML-Strings verarbeiten

Wenn der XML-String Attribute enthält, müssen Sie für den Zugriff die Attribute des SimpleXmlElement-Objekts verwenden ihnen diese Eigenschaften. Das Folgende ist ein Beispiel:

$xml_string = &#39;<root><item name="PHP" year="1995"/><item name="MySQL" year="1995"/>
</root>&#39;;
$xml = simplexml_load_string($xml_string);
 
$array = array();
foreach($xml->item as $item) {
    $array[] = array(
        &#39;name&#39; => (string)$item[&#39;name&#39;],
        &#39;year&#39; => (int)$item[&#39;year&#39;]
    );
}

In diesem Beispiel enthält $xml_string zwei Elementelemente, jedes Element hat zwei Attribute (Name und Jahr). Nach der Konvertierung der XML-Zeichenfolge in ein SimpleXmlElement-Objekt können Sie mit foreach() jedes Elementelement durchlaufen und mit $item['name'] und $item['year'] auf die Eigenschaften jedes Elements zugreifen.

Beachten Sie, dass die Konvertierung von Eigenschaften in Zeichenfolgen und Ganzzahlen durch Umwandlungen erfolgt.

4. Namespaces in XML-Strings verarbeiten

Wenn Namespaces in XML-Strings verwendet werden, müssen Sie für den Zugriff die Namespace-Methoden des SimpleXmlElement-Objekts verwenden diese Elemente. Das Folgende ist ein Beispiel:

$xml_string = &#39;<root xmlns="http://www.example.com"><item><name>PHP</name>
<year>1995</year></item><item><name>MySQL</name><year>1995</year></item></root>&#39;;
$xml = simplexml_load_string($xml_string);
 
$namespaces = $xml->getDocNamespaces();
$xml->registerXPathNamespace(&#39;ns&#39;, $namespaces[&#39;&#39;]);
 
$items = $xml->xpath(&#39;//ns:item&#39;);
$array = array();
foreach($items as $item) {
    $array[] = array(
        &#39;name&#39; => (string)$item->name,
        &#39;year&#39; => (int)$item->year
    );
}

Im obigen Beispiel enthält $xml_string zwei Elementelemente und definiert einen Namespace „http://www.example.com“. Verwenden Sie zunächst die Methode getDocNamespaces(), um alle Namespaces im XML abzurufen, und verwenden Sie dann die Methode registerXPathNamespace(), um ein Präfix „ns“ für die Namespaces bereitzustellen.

Verwenden Sie die Methode xpath(), um im XML-Dokument nach allen Elementelementen mit dem Namensraum „ns“ zu suchen. Verwenden Sie dann foreach(), um jedes Element zu durchlaufen und über $item->name und $item->year auf deren Werte zuzugreifen.

Das obige ist der detaillierte Inhalt vonSo konvertieren Sie XML+ in ein PHP+-Array. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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