Table des matières
php中的XML DOM(10),xmldom
Maison développement back-end tutoriel php php中的XML DOM(10),xmldom_PHP教程

php中的XML DOM(10),xmldom_PHP教程

Jul 13, 2016 am 10:01 AM
dom java php xml

php中的XML DOM(10),xmldom

1.PHP DOM (1)

Php中的DOM跟javascript不一样,属性不用另外增加一个节点

2.主要类

     DOMDocument :文档类

     DOMNodeList :节点列表类

     DOMNode :节点类

     DOMElement :元素类

3. DOMDocument

  3.1创建文档对象

     DOMDocument::__construct ([ string $version [, string $encoding ]] )

     [ string $version :版本号

     [, string $encoding ]]:字符集

  3.2、加载xml文件

     mixed DOMDocument::load ( string $filename)

     string $filename:要加载的xml文件名称

  3.3、获取节点

     DOMNodeList DOMDocument::getElementsByTagName ( string name )

     String name:要获取的节点名

示例:Demo.php

<?<span>php
    header ( </span><span>'</span><span>Content-Type:text/html;charset=gb2312</span><span>'</span><span> );
</span><span>//</span><span> 利用php解析demo01.xml
</span><span>//</span><span> 实例化dom对象</span>
    $dom = <span>new</span><span> DOMDocument ();
</span><span>//</span><span> 加载xml文件</span>
    $dom->load ( <span>'</span><span>demo01.xml</span><span>'</span><span> );
</span><span>//</span><span> 通过dom对象获取person节点,注意:这里返回值是一个DOMNodeList类对象</span>
    $persons = $dom->getElementsByTagName ( <span>'</span><span>person</span><span>'</span><span> );
</span><span>//</span><span> 共有几个person</span>
    echo <span>'</span><span>共有</span><span>'</span> . $persons->length . <span>'</span><span>个人<br></span><span>'</span>;      <span>//</span><span>输出共有两个人
</span><span>//</span><span> 选中索引为0的person,也就是第一个人</span>
    $person = $persons->item ( <span>0</span><span> );
</span><span>//</span><span> 在这个person下获取name节点,返回的仍然是一个DOMNodeList类对象</span>
    $names = $person->getElementsByTagName ( <span>'</span><span>name</span><span>'</span><span> );    
</span><span>//</span><span> 输出姓名</span>
echo $names->item ( <span>0</span> )->nodeValue . <span>'</span><span><br></span><span>'</span>;       <span>//</span><span>输出'张三'</span>
为什么要进行两次取的Nodelist呢?请参照上图,因为有两个节点
Copier après la connexion

demo.xml

<?xml version=<span>"</span><span>1.0</span><span>"</span> encoding=<span>"</span><span>UTF-8</span><span>"</span>?>
<persons>
    <person id=<span>"</span><span>s101</span><span>"</span>>
        <name>zhangsan</name>
        <age><span>30</span></age>
    </person>
    <person>
        <name>wangwu</name>
        <age><span>18</span></age>
    </person>
</persons>
Copier après la connexion

4. DOMNodeList类 (上面的person就是NodeList节点)

1、Length

当前节点列表中共有几个节点

2、DOMElement DOMNodelist::item ( int $index )

选中索引为index的节点

int $index:索引

5、 DOMNode类

1、nodeValue 节点的值

6、 关于属性的读取

1、bool DOMElement::hasAttribute ( string $name )

判断是否具有某个属性(只判断某个属性下有没有)

String $name:属性名

2、bool DOMNode::hasAttributes ( void )

判断是否具有属性(只要有属性就返回true)

3、string DOMElement::getAttribute ( string $name )

获取指定属性的属性值

String $name:属性名

示例2.用连贯操作输出

<?<span>php
    $dom </span>= <span>new</span> DOMDocument ( <span>'</span><span>1.0</span><span>'</span>, <span>'</span><span>utf-8</span><span>'</span><span> );
    $dom</span>->load ( <span>'</span><span>demo01.xml</span><span>'</span><span> );
</span><span>//</span><span> 想得到第一个人的姓名</span>
    echo $dom->getElementsByTagName ( <span>'</span><span>person</span><span>'</span> )->item ( <span>0</span><span> )
    </span>->getElementsByTagName ( <span>'</span><span>name</span><span>'</span> )->item ( <span>0</span> )-><span>nodeValue;
输出:张三</span>
Copier après la connexion

Example3

<?<span>php
    header ( </span><span>'</span><span>Content-Type:text/html;charset=gb2312</span><span>'</span><span> );
    $dom </span>= <span>new</span> DOMDocument ( <span>'</span><span>1.0</span><span>'</span>, <span>'</span><span>utf-8</span><span>'</span><span> );
    $dom</span>->load ( <span>'</span><span>demo01.xml</span><span>'</span><span> );
    $person </span>= $dom->getElementsByTagName ( <span>'</span><span>person</span><span>'</span> )->item ( <span>0</span><span> );
</span><span>//</span><span> 判断节点是否具有id属性</span>
    <span>if</span> ($person->hasAttribute ( <span>'</span><span>id</span><span>'</span><span> )) {
        echo </span><span>'</span><span>具有id属性</span><span>'</span><span>;
    } </span><span>else</span><span> {
        echo </span><span>'</span><span>没有id属性</span><span>'</span><span>;
    }
    echo </span><span>'</span><span><br></span><span>'</span><span>;
</span><span>//</span><span> 判断节点是否具有属性</span>
    <span>if</span> ($person-><span>hasAttributes ()) {
        echo </span><span>'</span><span>有属性</span><span>'</span><span>;
    } </span><span>else</span><span> {
        echo </span><span>'</span><span>没有任何属性</span><span>'</span><span>;
    }
    echo </span><span>'</span><span><br></span><span>'</span><span>;
</span><span>//</span><span> 得到第一个person的id属性值</span>
    echo $person->getAttribute ( <span>'</span><span>id</span><span>'</span> );
Copier après la connexion

之前的例子只能得到一条数据,现在我想得到所有人的完整信息,该如何实现?

示例4:

php中的XML DOM(10),xmldom_PHP教程php header ( 'content-type:text/html;charset=gb2312' ); $dom = new DOMDocument ( '1.0', 'utf-8' ); $dom->load ( 'demo01.xml' ); // 得到所有person节点 $persons = $dom->getElementsByTagName ( 'person' ); // 得到总人数 $count = $persons->length; for($i = 0; $i < $count; $i ++) { // $person表示第i个人 $person = $persons->item ( $i ); echo '' . ($i + 1) . '个人的'; if ($person->hasAttribute ( 'id' )) { echo '学号:' . $person->getAttribute ( 'id' ); } echo '姓名:' . $person->getElementsByTagName ( 'name' )->item ( 0 )->nodeValue; echo '年龄:' . $person->getElementsByTagName ( 'age' )->item ( 0 )->nodeValue; echo '
'; } ?>

 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/971770.htmlTechArticlephp中的XML DOM(10),xmldom 1.PHP DOM (1) Php中的DOM跟javascript不一样,属性不用另外增加一个节点 2. 主要类 DOMDocument :文档类 DOMNodeList :节点列...
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment analysez-vous et traitez-vous HTML / XML dans PHP? Comment analysez-vous et traitez-vous HTML / XML dans PHP? Feb 07, 2025 am 11:57 AM

Ce tutoriel montre comment traiter efficacement les documents XML à l'aide de PHP. XML (Language de balisage extensible) est un langage de balisage basé sur le texte polyvalent conçu à la fois pour la lisibilité humaine et l'analyse de la machine. Il est couramment utilisé pour le stockage de données et

Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Apr 05, 2025 am 12:04 AM

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

Programme PHP pour compter les voyelles dans une chaîne Programme PHP pour compter les voyelles dans une chaîne Feb 07, 2025 pm 12:12 PM

Une chaîne est une séquence de caractères, y compris des lettres, des nombres et des symboles. Ce tutoriel apprendra à calculer le nombre de voyelles dans une chaîne donnée en PHP en utilisant différentes méthodes. Les voyelles en anglais sont a, e, i, o, u, et elles peuvent être en majuscules ou en minuscules. Qu'est-ce qu'une voyelle? Les voyelles sont des caractères alphabétiques qui représentent une prononciation spécifique. Il y a cinq voyelles en anglais, y compris les majuscules et les minuscules: a, e, i, o, u Exemple 1 Entrée: String = "TutorialSpoint" Sortie: 6 expliquer Les voyelles dans la chaîne "TutorialSpoint" sont u, o, i, a, o, i. Il y a 6 yuans au total

Expliquez la liaison statique tardive en PHP (statique: :). Expliquez la liaison statique tardive en PHP (statique: :). Apr 03, 2025 am 12:04 AM

Liaison statique (statique: :) ​​implémente la liaison statique tardive (LSB) dans PHP, permettant à des classes d'appel d'être référencées dans des contextes statiques plutôt que de définir des classes. 1) Le processus d'analyse est effectué au moment de l'exécution, 2) Recherchez la classe d'appel dans la relation de succession, 3) il peut apporter des frais généraux de performance.

Break or Return of Java 8 Stream Forach? Break or Return of Java 8 Stream Forach? Feb 07, 2025 pm 12:09 PM

Java 8 présente l'API Stream, fournissant un moyen puissant et expressif de traiter les collections de données. Cependant, une question courante lors de l'utilisation du flux est: comment se casser ou revenir d'une opération FOREAK? Les boucles traditionnelles permettent une interruption ou un retour précoce, mais la méthode Foreach de Stream ne prend pas directement en charge cette méthode. Cet article expliquera les raisons et explorera des méthodes alternatives pour la mise en œuvre de terminaison prématurée dans les systèmes de traitement de flux. Lire plus approfondie: Améliorations de l'API Java Stream Comprendre le flux Forach La méthode foreach est une opération terminale qui effectue une opération sur chaque élément du flux. Son intention de conception est

Quelles sont les méthodes PHP Magic (__construct, __ destruct, __ call, __get, __set, etc.) et fournir des cas d'utilisation? Quelles sont les méthodes PHP Magic (__construct, __ destruct, __ call, __get, __set, etc.) et fournir des cas d'utilisation? Apr 03, 2025 am 12:03 AM

Quelles sont les méthodes magiques de PHP? Les méthodes magiques de PHP incluent: 1. \ _ \ _ Construct, utilisé pour initialiser les objets; 2. \ _ \ _ Destruct, utilisé pour nettoyer les ressources; 3. \ _ \ _ Appel, gérer les appels de méthode inexistants; 4. \ _ \ _ GET, Implémentez l'accès à l'attribut dynamique; 5. \ _ \ _ SET, Implémentez les paramètres d'attribut dynamique. Ces méthodes sont automatiquement appelées dans certaines situations, améliorant la flexibilité et l'efficacité du code.

Expliquez l'expression de correspondance (PHP 8) et comment elle diffère du commutateur. Expliquez l'expression de correspondance (PHP 8) et comment elle diffère du commutateur. Apr 06, 2025 am 12:03 AM

Dans PHP8, les expressions de correspondance sont une nouvelle structure de contrôle qui renvoie différents résultats en fonction de la valeur de l'expression. 1) Il est similaire à une instruction Switch, mais renvoie une valeur au lieu d'un bloc d'instruction d'exécution. 2) L'expression de correspondance est strictement comparée (===), ce qui améliore la sécurité. 3) Il évite les éventuelles omissions de rupture dans les instructions de commutation et améliore la simplicité et la lisibilité du code.

Programme Java pour trouver le volume de la capsule Programme Java pour trouver le volume de la capsule Feb 07, 2025 am 11:37 AM

Les capsules sont des figures géométriques tridimensionnelles, composées d'un cylindre et d'un hémisphère aux deux extrémités. Le volume de la capsule peut être calculé en ajoutant le volume du cylindre et le volume de l'hémisphère aux deux extrémités. Ce tutoriel discutera de la façon de calculer le volume d'une capsule donnée en Java en utilisant différentes méthodes. Formule de volume de capsule La formule du volume de la capsule est la suivante: Volume de capsule = volume cylindrique volume de deux hémisphères volume dans, R: Le rayon de l'hémisphère. H: La hauteur du cylindre (à l'exclusion de l'hémisphère). Exemple 1 entrer Rayon = 5 unités Hauteur = 10 unités Sortir Volume = 1570,8 unités cubes expliquer Calculer le volume à l'aide de la formule: Volume = π × r2 × h (4

See all articles