Heim > Backend-Entwicklung > XML/RSS-Tutorial > PHP-Operation XML

PHP-Operation XML

高洛峰
Freigeben: 2016-12-24 11:09:25
Original
1905 Leute haben es durchsucht

Zu manipulierende Daten

<?xml version="1.0"?>
<books>
    <book name="JavaScript: The Defiitive Guide" publisher="O&#39;Reilly Media, Inc.">
        <author>David Flanagan</author>
    </book>
    <book name="PHP anf MySQL Web Development" publisher="Perason Education">
        <author>Luke Welling</author>
        <author>Laura Thomson</author>
    </book>
    <book name="HTTP: The Defiitive Guide" publisher="O&#39;Reilly Media, Inc.">
        <author>David Courley</author>
        <author>Brian Totty</author>
    </book>
</books>
Nach dem Login kopieren

Mehrere Grundkonzepte von XML
1. Knoten ist der Knoten, der in vielen Programmiersprachen bei der Verarbeitung von XML verwendet wird. In XML gehören Elemente, Attribute, Namespaces, Kommentare, Textinhalte, Verarbeitungsanweisungen und das gesamte Dokument zu Knoten. Das heißt, jeder unabhängige kleine Teil des XML-Dokuments ist ein Knoten, Ja, name=“XXXX“ ist auch, und sogar der Name des Autors David Flanagan ist ein Textknoten.
2. Element: Viele Programmiersprachen verfügen über ein sehr weit gefasstes Konzept. Aufgrund der Notwendigkeit, die API zu vereinheitlichen, wird es nicht zu viele Methoden für Knoten geben. Um es einfach auszudrücken: Tags wie haben im Allgemeinen viele Operationsmethoden für Elemente.
3. Attribute: Dies ist einfacher zu verstehen.
4 um diese Sonderzeichen zu maskieren, wenn Sie sie verwenden möchten

PHP-Operation XML

DOMDocument-Objekt
Ich verwende das DOMDocument-Objekt, um XML zu bedienen, und die Verwendung fühlt sich wissenschaftlicher an als simpleXml. Natürlich ist der erste Tag mit PHP ein rein persönliches Gefühl. DOMDocument verfügt über mehrere häufig verwendete Eigenschaften und Methoden.

PHP-Operation XML

XML laden

$path=$_SERVER["DOCUMENT_ROOT"].&#39;/books.xml&#39;;
    $books=new DOMDocument();
    $books->load($path);
Nach dem Login kopieren

Knoten und Attribute lesen/traversieren

$bookElements=$books->getElementsByTagName(&#39;book&#39;);
    foreach($bookElements as $book){
        foreach ($book->attributes as $attr) {
            echo strtoupper($attr->nodeName).&#39; —— &#39;.$attr->nodeValue.&#39;<br/>&#39;;
        }
        echo "AUTHOR: ";
        foreach ($book->getElementsByTagName(&#39;author&#39;) as $author) {
            echo $author->nodeValue.&#39; &#39;;
        }
        echo &#39;<br/><br/>&#39;;
    }
Nach dem Login kopieren

PHP-Operation XML

Wenn Sie bei vielen Attributen nur eines lesen möchten, können Sie natürlich den Index über die Methode item(index) lesen

echo $book->attributes->item(1)->nodeValue;
Nach dem Login kopieren

Sie können die Attribute auch über die leistungsstarke XPath-Abfrage ändern

还可以通过强大的xpath查询
Nach dem Login kopieren

/ Knoten

foreach($bookElements as $book){
        foreach ($book->attributes as $attr) {
            #$book->setAttribute($attr->nodeName,strtoupper($attr->nodeValue));
            $attr->nodeValue=strtoupper($attr->nodeValue);
        }
        echo "AUTHOR: ";
        foreach ($book->getElementsByTagName(&#39;author&#39;) as $author) {
            $author->nodeValue=strtoupper($author->nodeValue);
        }
    }
    $books->save($path);
Nach dem Login kopieren

PHP-Operation XML

kann direkt auf seinen Knotenwert zugreifen, um Attribute zu ändern, oder Sie können die setAttribute-Methode verwenden. Vergessen Sie nicht, save zu verwenden nachdem Änderungen vorgenommen wurden.

$book->setAttribute($attr->nodeName,strtoupper($attr->nodeValue));
$attr->nodeValue=strtoupper($attr->nodeValue);
Nach dem Login kopieren

Element/Attribut hinzufügen

$newBook=$books->createElement(&#39;book&#39;); #创建新元素
    $newBook->setAttribute(&#39;name&#39;,&#39;PHP Objects, Patterns, and Practice&#39;);#创建新属性,方法一
    $publisher=$books->createAttribute(&#39;publisher&#39;);#创建新属性,方法二
    $publisher->nodeValue=&#39;Apress L.P&#39;;
    $newBook->appendChild($publisher); #把属性添加到元素上
    $author=$books->createElement(&#39;author&#39;);#创建子元素
    $author->nodeValue=&#39;Matt Zandstra&#39;;
    $newBook->appendChild($author);#把子元素添加到父元素上
    $books->documentElement->appendChild($newBook);#添加整个节点
    $books->save($path);
Nach dem Login kopieren

Attribut/Knoten löschen

$first=$bookElements->item(0);
    $first->removeAttribute(&#39;publisher&#39;);
    $second=$bookElements->item(1);
    $second->parentNode->removeChild($second);
    $books->save($path);
Nach dem Login kopieren

PHP-Operation XML

Weitere PHP-Operationen im XML-Bereich Bitte Achten Sie auf die chinesische PHP-Website für Artikel!

Verwandte Etiketten:
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage