Maison >développement back-end >Tutoriel XML/RSS >XML Learning (2) Explication détaillée des opérations DOM sur les documents XML

XML Learning (2) Explication détaillée des opérations DOM sur les documents XML

黄舟
黄舟original
2017-03-20 16:56:091592parcourir

Aux yeux du DOM, HTML est un document arborescent comme XML. Chaque nœud est traité comme un objet Node de différents types. Chaque objet Node possède ses propres propriétés et méthodes, qui peuvent être utilisées pour parcourir l'intégralité de l'arborescence du document. DOM définit nodeType pour représenter le type de nœud

interface

nodeType Constante

valeur nodeType

Remarques

Élément

Node.ELEMENT_NODE

1

Nœud d'élément

Texte

Node.TEXT_NODE

3

Nœud de texte

Document

Node.DOCUMENT_NODE

9

document

Commentaire

Node.COMMENT_NODE

8

注释的文本

DocumentFragment

Node.DOCUMENT_FRAGMENT_NODE

11

document片断

Attr

Node.ATTRIBUTE_NODE

2

Attributs du nœud

Le nœud racine de l'arborescence DOM est un objet Document, et parfois le document pointe vers le document entier.

La plupart des méthodes définies par Document sont des méthodes de production, principalement utilisées pour créer différents types de nœuds pouvant être insérés dans des documents. Les méthodes de document couramment utilisées sont :

Méthode

Description

createAttribute()

Créer avec le nom spécifié Nouveau nœud Attr.

createComment()

Utiliser la chaîne spécifiée Créer un nouveau nœud Commentaire.

createElement()

avec le tagname spécifié Créer un nouveau nœud Element.

createTextNode()

Créer avec le texte spécifié Nouveau nœud TextNode.

getElementById()

Renvoie le nœud Element avec l'attribut id spécifié dans le document.

getElementsByTagName()

Renvoie le document avec le spécifié tous les nœuds d'élément du nom de variable.

Élément méthodes couramment utilisées :

Attributs communs des objets Node :

méthode

Description

getAttribute()

Renvoie la valeur de la propriété spécifiée sous forme de chaîne.

getAttributeNode()

sous la forme d'Attr node Renvoie la valeur de la propriété spécifiée.

getElementsByTabName()

Renvoie un nœudTableau contenant les nœuds descendants de tous les nœuds Element avec le nom de balise spécifié, dans l'ordre dans lequel ils apparaissent dans le document.

hasAttribute()

Si l'élément a le attribut Nom spécifié, renvoie vrai.

removeAttribute()

Supprime l'attribut spécifié de l'élément.

removeAttributeNode()

De la liste des attributs de l'élément Supprimez le nœud Attr spécifié.

setAttribute()

Définir l'attribut spécifié pour la valeur de chaîne spécifiée, ajoute un nouvel attribut s'il n'existe pas.

setAttributeNode()

Définir le nœud Attr spécifié Ajouté à la liste d'attributs de l'élément.

Attributs

description

attributs

Si le nœud est un Element, renvoie les attributs de l'élément sous la forme de NamedNodeMap. Les

childNodes

sont stockés sous forme de Node [] Les nœuds enfants du nœud actuel. S'il n'y a pas de nœuds enfants, un tableau vide est renvoyé.

firstChild

Renvoyer le nœud actuel dans le formulaire de Node le premier nœud enfant. null s'il n'y a pas de nœuds enfants.

lastChild

Renvoie le nœud actuel sous la forme de Node le dernier nœud enfant de . C'est nul s'il n'y a pas de nœuds enfants.

suivantSibling

Renvoie le nœud suivant qui est le frère du nœud actuel sous la forme de Node. S'il n'existe pas de tel nœud, null est renvoyé.

nodeName

Le nom du nœud, Element node is Représente le nom de balise de l'élément.

nodeType

représente le type de nœud.

parentNode

Renvoie le nœud actuel sous la forme du nœud parent de Node. S'il n'y a pas de nœud parent, c'est nul.

previousSibling

Renvoie en tant que nœud Le nœud actuel et ses nœuds frères précédents. S'il n'existe pas de tel nœud, null est renvoyé.

Méthodes courantes des objets nœuds :

Méthode

Description

appendChild()

En ajoutant un nœud à The Le groupe childNodes[] du nœud actuel ajoute des nœuds à l'arborescence du document.

cloneNode()

Copiez le nœud actuel, ou Copie le nœud actuel et tous ses nœuds descendants.

hasChildNodes()

Si le nœud actuel a nœud enfants, il retournera vrai.

insertBefore()

Insérer un nœud d'arborescence de documents , situé avant le nœud enfant spécifié du nœud actuel. Si le nœud existe déjà, supprimez-le et insérez-le à sa place.

removeChild()

Supprimer de l'arborescence du document et renvoie le nœud enfant spécifié.

replaceChild()

Supprime et renvoie le nœud enfant spécifié de l'arborescence du document , remplacez-le par un autre nœud.


Obtention de la valeur d'un élément

Le code suivant récupère la valeur texte du premier b2386ffb911b14667cb8f0f91ea547a7 element :

x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];txt=x.nodeValue; //其实应该先判断节点是否存在

Résultat : txt = "Harry Potter"

Récupérer la valeur de l'attribut

Le code suivant récupère le " du premier < ;title> element Valeur texte de l'attribut lang" :

txt=xmlDoc.getElementsByTagName("title")[0].getAttribute("lang");

Résultat : txt = "fr"

Modifier la valeur de l'élément

Le Le code suivant modifie la première valeur texte < ;title> de l'élément :

x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];x.nodeValue="Easy Cooking";

Modifier la valeur de l'attribut

La méthode setAttribute() peut être utilisée pour modifier la valeur d'un attribut existant ou créez un nouvel attribut.

Le code suivant ajoute un nouvel attribut appelé "edition" (avec une valeur de "first") à chaque élément 463aef0d2da08708f472268a99530dbe :

x=xmlDoc.getElementsByTagName("book");for(i=0;i<x.length;i++)  {  x[i].setAttribute("edition","first");  }

Créer un élément

createElement() crée un nouveau nœud d'élément. La méthode

createTextNode() crée un nouveau nœud de texte.

La méthode appendChild() ajoute un nœud enfant à un nœud (après le dernier nœud enfant).

Si vous devez créer un nouvel élément avec du contenu textuel, vous devez créer un nœud d'élément et un nœud de texte en même temps.

Le code suivant crée un élément (a866a342e5caa631fbe389b07113afd3) et l'ajoute au premier élément 463aef0d2da08708f472268a99530dbe :

newel=xmlDoc.createElement("edition");
newtext=xmlDoc.createTextNode("First");
newel.appendChild(newtext);
x=xmlDoc.getElementsByTagName("book");x[0].appendChild(newel);
Explication de l'exemple :

  1. Créez l'élément a866a342e5caa631fbe389b07113afd3

  2. Créez le nœud texte

  3. Ajouter ce nœud de texte à l'élément a866a342e5caa631fbe389b07113afd3
  4. Ajouter l'élément a866a342e5caa631fbe389b07113afd3
  5. Supprimer l'élément

  6. La méthode RemoveChild() supprime le nœud (ou l'élément) spécifié.

L'extrait de code suivant supprimera le premier nœud du premier élément 463aef0d2da08708f472268a99530dbe :

Exemple de code

x=xmlDoc.getElementsByTagName("book")[0];x.removeChild(x.childNodes[0]);

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
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