opération php xml

高洛峰
Libérer: 2016-12-24 11:09:25
original
1884 Les gens l'ont consulté

Données à manipuler

<?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>
Copier après la connexion

Plusieurs concepts de base de XML
1 Node : Node est le Node utilisé dans de nombreux langages de programmation lors du traitement de XML. En XML, les éléments, les attributs, les espaces de noms, les commentaires, le contenu textuel, les instructions de traitement et l'ensemble du document appartiennent à des nœuds. Autrement dit, chaque petite partie indépendante du document XML est un nœud, Oui, name=”XXXX” l'est aussi, la balise l'est, et même le nom de l'auteur David Flanagan est un nœud de texte.
2. Element : De nombreux langages de programmation ont un traitement XML. Node est un concept très large. En raison de la nécessité d'unifier l'API, il n'y aura pas trop de méthodes pour les nœuds, et Element est un sous-ensemble de nœuds. Pour faire simple, les balises comme ont généralement de nombreuses méthodes de fonctionnement pour les éléments.
3. Attributs : c'est plus facile à comprendre. Des éléments comme XX="OO" dans <> sont tous des nœuds d'attribut
4 Caractères d'échappement : similaire au HTML, XML a également une occupation de langage. pour échapper à ces caractères spéciaux lorsque vous souhaitez les utiliser

opération php xml

Objet DOMDocument
J'utilise l'objet DOMDocument pour faire fonctionner XML, et cela semble plus scientifique à utiliser que simpleXml , bien sûr, le premier jour d’utilisation de PHP est purement un sentiment personnel. DOMDocument possède plusieurs propriétés et méthodes couramment utilisées.

opération php xml

Charger XML

$path=$_SERVER["DOCUMENT_ROOT"].&#39;/books.xml&#39;;
    $books=new DOMDocument();
    $books->load($path);
Copier après la connexion

Lire/traverser les nœuds et les attributs

$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;;
    }
Copier après la connexion

opération php xml

Bien sûr, pour de nombreux attributs, si vous ne souhaitez en lire qu'un seul, vous pouvez lire par index via la méthode item(index)

echo $book->attributes->item(1)->nodeValue;
Copier après la connexion

Vous pouvez également modifier les attributs via la puissante requête XPath

还可以通过强大的xpath查询
Copier après la connexion

/ Le nœud

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);
Copier après la connexion

opération php xml

peut accéder directement à sa nodeValue pour modifier les attributs, ou vous pouvez utiliser la méthode setAttribute. N'oubliez pas d'utiliser save. après avoir apporté des modifications.

$book->setAttribute($attr->nodeName,strtoupper($attr->nodeValue));
$attr->nodeValue=strtoupper($attr->nodeValue);
Copier après la connexion

Ajouter un élément/un attribut

$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);
Copier après la connexion

Supprimer un attribut/un nœud

$first=$bookElements->item(0);
    $first->removeAttribute(&#39;publisher&#39;);
    $second=$bookElements->item(1);
    $second->parentNode->removeChild($second);
    $books->save($path);
Copier après la connexion

opération php xml

Plus d'opérations php liées au XML s'il vous plaît faites attention au site Web PHP chinois pour les articles !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal