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

So konvertieren Sie einen XML-String in ein PHP-Array

PHPz
PHPzOriginal
2023-04-24 10:52:15629Durchsuche

PHP 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.

In diesem Artikel stellen wir die Methode zum Konvertieren einer XML-Zeichenfolge in ein PHP-Array vor.

1. XML-String in SimpleXmlElement-Objekt konvertieren

In PHP müssen Sie zuerst 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 = '<root><item><name>PHP</name><year>1995</year></item><item><name>MySQL</name><year>1995</year></item></root>';
$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 = '<root><item><name>PHP</name><year>1995</year></item><item><name>MySQL</name><year>1995</year></item></root>';
$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. Verarbeitung von Attributen in XML-Strings

Wenn der XML-String Attribute enthält, müssen Sie die Eigenschaften des SimpleXmlElement-Objekts verwenden, um auf diese Attribute zuzugreifen. Hier ist ein Beispiel:

$xml_string = '<root><item name="PHP" year="1995"/><item name="MySQL" year="1995"/></root>';
$xml = simplexml_load_string($xml_string);

$array = array();
foreach($xml->item as $item) {
    $array[] = array(
        'name' => (string)$item['name'],
        'year' => (int)$item['year']
    );
}

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 über Umwandlungen erfolgt.

4. Namespaces in XML-Strings verarbeiten

Wenn Namespaces in XML-Strings verwendet werden, müssen Sie die Namespace-Methode des SimpleXmlElement-Objekts verwenden, um auf diese Elemente zuzugreifen. Das Folgende ist ein Beispiel:

$xml_string = '<root xmlns="http://www.example.com"><item><name>PHP</name><year>1995</year></item><item><name>MySQL</name><year>1995</year></item></root>';
$xml = simplexml_load_string($xml_string);

$namespaces = $xml->getDocNamespaces();
$xml->registerXPathNamespace('ns', $namespaces['']);

$items = $xml->xpath('//ns:item');
$array = array();
foreach($items as $item) {
    $array[] = array(
        'name' => (string)$item->name,
        'year' => (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 xpath()-Methode, um das XML-Dokument nach allen Elementelementen mit dem Namensraum „ns“ zu durchsuchen. Verwenden Sie dann foreach(), um jedes Element zu durchlaufen und über $item->name und $item->year auf deren Werte zuzugreifen.

Zusammenfassung

In PHP ist das Konvertieren von XML-Strings in PHP-Arrays sehr einfach. Sie müssen nur Funktionen wie SimpleXmlElement, json_encode() und json_decode() verwenden. Wenn die XML-Zeichenfolge Attribute oder Namespaces enthält, müssen Sie auch die Eigenschaften und Namespace-Methoden des SimpleXmlElement-Objekts verwenden.

Ich hoffe, dieser Artikel ist hilfreich für Sie, vielen Dank fürs Lesen!

Das obige ist der detaillierte Inhalt vonSo konvertieren Sie einen XML-String 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