ObjetXmlDocument
XmlDocument est xmlUn objet du module, qui représente l'intégralité du document XML et donne accès à l'intégralité du document.
XmlDocument est la racine d'une arborescence de documents et contient tous les nœuds de l'intégralité du document XML. L'objet XmlDocument fournit également les fonctions suivantes :
- Créez des nœuds d'éléments, des nœuds de texte, des commentaires, des instructions de traitement, etc.
- Accéder et modifier les propriétés du document et les informations associées (telles que les commentaires DTD et les déclarations de document)
- Analyser des documents XML
Voici un exemple de code qui utilise l'objet XmlDocument pour analyser un document XML :
1
2
3
4
5
6
7
8
9var xml = require('xml');
var fs = require('fs');
var xmlStr = fs.readFile('test.xml');
var xmlDoc = xml.parse(xmlStr);
// get document root node name
var rootName = xmlDoc.documentElement.nodeName;
console.log(`文档根节点名称是 ${rootName}`);
Dans le code ci-dessus, nous utilisons d'abord fs
la méthode module readFile()
pour lire un fichier XML et attribuer le flux de fichier à la variable xmlStr
. Ensuite, nous utilisons [xml](../../module/ifs/xml.md)
la méthode du module pour analyser le fichier XML et attribuer l' objet parse()
analysé à une variable . Enfin, nous utilisons l'attribut de pour obtenir le nœud racine du document, obtenir son nom de nœud et l'afficher sur la console.XmlDocument
xmlDoc
xmlDoc
documentElement
Puisque XmlDocument est l'entrée de l'ensemble du document XML, nous pouvons obtenir et modifier des informations relatives au document via celui-ci. Par exemple, nous pouvons obtenir et modifier la version XML et les attributs autonomes du document via xmlDoc.xmlVersion
et respectivement. xmlDoc.xmlStandalone
Nous pouvons également xmlDoc.createProcessingInstruction()
créer de nouveaux nœuds d’instructions de traitement grâce à la méthode.
L'objet XmlDocument est un type très puissant qui nous offre une grande commodité pour traiter et analyser les fichiers XML.
relation d'héritage
Constructeur
XmlDocument
Construire un objet XmlDocument
1new XmlDocument(String type = "text/xml");
Paramètres d'appel :
- type: String, spécifie le type d'objet document, la valeur par défaut est "text/xml", si vous devez traiter du HTML, vous devez spécifier "text/html"
propriétés des membres
inputEncoding
String, renvoie l'encodage utilisé pour le document (lors de l'analyse)
1readonly String XmlDocument.inputEncoding;
xmlStandalone
Booléen, définit ou renvoie si le document est autonome
1Boolean XmlDocument.xmlStandalone;
xmlVersion
Chaîne, définit ou renvoie la version XML du document
1String XmlDocument.xmlVersion;
doctype
XmlDocumentType, renvoie la déclaration de type de document associée au document
1readonly XmlDocumentType XmlDocument.doctype;
Pour les documents XML sans DTD, null est renvoyé. Cette propriété offreXmlDocumentTypeAccès direct à l'objet (un nœud enfant de XmlDocument).
documentElement
XmlElement, renvoie le nœud racine du document
1readonly XmlElement XmlDocument.documentElement;
head
XmlElement, renvoie le nœud principal du document HTML, valable uniquement en mode html
1readonly XmlElement XmlDocument.head;
title
String, renvoie le contenu du nœud titre du document HTML, valable uniquement en mode html
1readonly String XmlDocument.title;
body
XmlElement, renvoie le nœud corps du document HTML, valable uniquement en mode html
1readonly XmlElement XmlDocument.body;
nodeType
Entier, renvoie le type de nœud du nœud
1readonly Integer XmlDocument.nodeType;
Le nodeType de différents objets renverra différentes valeurs :
- XmlElement: ELEMENT_NODE(1)
- XmlAttr:ATTRIBUTE_NODE(2)
- XmlText: TEXTE_NODE(3)
- XmlCDATASection: CDATA_SECTION_NODE(4)
- XmlProcessingInstruction: PROCESSING_INSTRUCTION_NODE(7)
- XmlComment:COMMENT_NODE(8)
- XmlDocument: DOCUMENT_NODE(9)
- XmlDocumentType: DOCUMENT_TYPE_NODE(10)
nodeName
String, renvoie le nom du nœud, selon son type
1readonly String XmlDocument.nodeName;
Le nodeName de différents objets renverra différentes valeurs :
- XmlElement:nom de l'élément
- XmlAttr: Nom d'attribut
- XmlText: #texte
- XmlCDATASection: #cdata-section
- XmlProcessingInstruction: Renvoie la cible cible spécifiée
- XmlComment: #commentaire
- XmlDocument: #document
- XmlDocumentType: nom du type de document
nodeValue
String, renvoie le nom du nœud, selon son type
1String XmlDocument.nodeValue;
Le nodeName de différents objets renverra différentes valeurs :
- XmlElement: nul
- XmlAttr: valeur d'attribut
- XmlText: le contenu du nœud
- XmlCDATASection: le contenu du nœud
- XmlProcessingInstruction: Renvoie les données de contenu spécifiées
- XmlComment: texte d'annotation
- XmlDocument: nul
- XmlDocumentType: nul
ownerDocument
XmlDocument, renvoie l'élément racine du nœud (objet XmlDocument)
1readonly XmlDocument XmlDocument.ownerDocument;
parentNode
XmlNode, peut renvoyer le nœud parent d'un nœud
1readonly XmlNode XmlDocument.parentNode;
childNodes
XmlNodeList, renvoie la liste des nœuds enfants du nœud spécifié
1readonly XmlNodeList XmlDocument.childNodes;
children
XmlNodeList, renvoie la liste des nœuds des éléments enfants du nœud spécifié.
1readonly XmlNodeList XmlDocument.children;
firstChild
XmlNode, renvoie le premier nœud enfant du nœud
1readonly XmlNode XmlDocument.firstChild;
lastChild
XmlNode, renvoie le dernier nœud enfant du nœud
1readonly XmlNode XmlDocument.lastChild;
previousSibling
XmlNode, renvoie le nœud précédant immédiatement un nœud (au même niveau d'arborescence). S'il n'existe pas de tel nœud, cette propriété renvoie null.
1readonly XmlNode XmlDocument.previousSibling;
nextSibling
XmlNode, renvoie le nœud qui suit immédiatement un élément (dans le même niveau d'arborescence). S'il n'existe pas de tel nœud, l'attribut renvoie null.
1readonly XmlNode XmlDocument.nextSibling;
firstElementChild
XmlNode, renvoie le premier nœud d'élément enfant du nœud
1readonly XmlNode XmlDocument.firstElementChild;
lastElementChild
XmlNode, renvoie le dernier nœud d'élément enfant du nœud
1readonly XmlNode XmlDocument.lastElementChild;
previousElementSibling
XmlNode, renvoie le nœud d'élément précédant immédiatement un nœud (au même niveau d'arborescence). S'il n'existe pas de nœud de ce type, cette propriété renvoie null.
1readonly XmlNode XmlDocument.previousElementSibling;
nextElementSibling
XmlNode, renvoie le nœud d'élément qui suit immédiatement un élément (dans le même niveau d'arborescence). S'il n'existe pas de tel nœud, l'attribut renvoie null.
1readonly XmlNode XmlDocument.nextElementSibling;
textContent
String, interroge et définit le texte de l'élément sélectionné. Lors de l'interrogation, renvoie les valeurs de tous les nœuds de texte dans le nœud d'élément ; lors de la configuration, supprime tous les nœuds enfants et les remplace par un seul nœud de texte.
1String XmlDocument.textContent;
fonction membre
load
Le document est composé en analysant une chaîne XML/HTML. Le multilinguisme n'est pas pris en charge.
1XmlDocument.load(String source);
Paramètres d'appel :
- source: String, le texte XML/HTML à analyser, selon le type lors de la création du document
Le document est composé en analysant une chaîne binaire XML/HTML et automatiquement converti en fonction de la langue.
1XmlDocument.load(Buffer source);
Paramètres d'appel :
- source:Buffer, le texte XML/HTML à analyser, en fonction du type de document lors de sa création
getElementsByTagName
Renvoie une liste de nœuds avec tous les éléments portant le nom spécifié
1XmlNodeList XmlDocument.getElementsByTagName(String tagName);
Paramètres d'appel :
- tagName: String, le nom de la balise à récupérer. La valeur "*" correspond à toutes les balises
Résultats de retour :
- XmlNodeList, avec la balise spécifiée dans l'arborescence du documentXmlElementNodalXmlNodeListrassembler. L'ordre des nœuds d'éléments renvoyés est l'ordre dans lequel ils apparaissent dans le document source.
Cette méthode renverra unXmlNodeListObjet (peut être traité comme un tableau en lecture seule) qui stocke toutes les balises du document avec le nom de balise spécifiéXmlElementLes nœuds sont stockés dans l'ordre dans lequel ils apparaissent dans le document source.XmlNodeListL'objet est "en direct", c'est-à-dire que si un élément avec le nom de balise spécifié est ajouté ou supprimé dans le document, son contenu sera automatiquement mis à jour si nécessaire.
getElementsByTagNameNS
Renvoie une liste de nœuds de tous les éléments avec l'espace de noms et le nom spécifiés
1
2XmlNodeList XmlDocument.getElementsByTagNameNS(String namespaceURI,
String localName);
Paramètres d'appel :
- namespaceURI: String, spécifie l'URI de l'espace de noms à récupérer. La valeur "*" correspond à toutes les balises
- localName: String, le nom de la balise à récupérer. La valeur "*" correspond à toutes les balises
Résultats de retour :
- XmlNodeList, avec la balise spécifiée dans l'arborescence du documentXmlElementNodalXmlNodeListrassembler. L'ordre des nœuds d'éléments renvoyés est l'ordre dans lequel ils apparaissent dans le document source.
Cette méthode est similaire à la méthode getElementsByTagName() sauf qu'elle récupère les éléments en fonction de l'espace de noms et du nom.
getElementById
Renvoie l'élément avec l'attribut id spécifié
1XmlElement XmlDocument.getElementById(String id);
Paramètres d'appel :
- id: String, l'identifiant à récupérer
Résultats de retour :
- XmlElement, avec l'attribut id spécifié dans l'arborescence des nœudsXmlElementnœud
Cette méthode parcourra les nœuds descendants du document et renverra unXmlElementObjet nœud qui représente le premier élément de document avec l'attribut id spécifié. .
getElementsByClassName
Renvoie une liste de nœuds de tous les éléments avec le nom de classe spécifié
1XmlNodeList XmlDocument.getElementsByClassName(String className);
Paramètres d'appel :
- className: String, le nom de la classe à récupérer
Résultats de retour :
- XmlNodeList, avec le nom de classe spécifié dans l'arborescence du documentXmlElementNodalXmlNodeListrassembler. L'ordre des nœuds d'éléments renvoyés est l'ordre dans lequel ils apparaissent dans le document source.
Cette méthode renverra unXmlNodeListObjet (peut être traité comme un tableau en lecture seule), qui stocke tous les fichiers portant le nom de classe spécifié dans le documentXmlElementLes nœuds sont stockés dans l'ordre dans lequel ils apparaissent dans le document source.XmlNodeListL'objet est "en direct", c'est-à-dire que si un élément avec le nom de balise spécifié est ajouté ou supprimé dans le document, son contenu sera automatiquement mis à jour si nécessaire.
createElement
Créer un nœud d'élément
1XmlElement XmlDocument.createElement(String tagName);
Paramètres d'appel :
- tagName: String, spécifie le nom spécifié du nœud d'élément
Résultats de retour :
- XmlElement, renvoie le nouveau crééXmlElementnœud, avec le nom d'étiquette spécifié
createElementNS
Crée un nœud d'élément avec l'espace de noms spécifié
1
2XmlElement XmlDocument.createElementNS(String namespaceURI,
String qualifiedName);
Paramètres d'appel :
- namespaceURI: String, spécifie l'URI de l'espace de noms du nœud d'élément
- qualifiedName: String, spécifie le nom spécifié du nœud d'élément
Résultats de retour :
- XmlElement, renvoie le nouveau crééXmlElementnœud, avec le nom d'étiquette spécifié
createTextNode
Créer un nœud de texte
1XmlText XmlDocument.createTextNode(String data);
Paramètres d'appel :
- data: String, précise le texte de ce nœud
Résultats de retour :
createComment
Créer un nœud d'annotation
1XmlComment XmlDocument.createComment(String data);
Paramètres d'appel :
- data: String, spécifie le texte du commentaire de ce nœud
Résultats de retour :
- XmlComment, renvoie le nouveau crééXmlCommentNœud, le texte du commentaire correspond aux données spécifiées
createCDATASection
créerXmlCDATASectionnœud
1XmlCDATASection XmlDocument.createCDATASection(String data);
Paramètres d'appel :
- data: String, spécifie que ce nœud spécifie les données CDATA
Résultats de retour :
- XmlCDATASection, renvoie le nouveau crééXmlCDATASectionNœud, le contenu est les données spécifiées
createProcessingInstruction
créerXmlProcessingInstructionnœud
1
2XmlProcessingInstruction XmlDocument.createProcessingInstruction(String target,
String data);
Paramètres d'appel :
- target: String, spécifie la cible de l'instruction de traitement
- data: String, spécifie le texte du contenu de l'instruction de traitement
Résultats de retour :
- XmlProcessingInstruction, le nœud ProcessingInstruction nouvellement créé
hasChildNodes
Demander s'il existe des nœuds enfants
1Boolean XmlDocument.hasChildNodes();
Résultats de retour :
- Boolean, renvoie vrai s'il y a des nœuds enfants, sinon renvoie faux
normalize
Fusionner les nœuds de texte adjacents et supprimer les nœuds de texte vides
1XmlDocument.normalize();
Cette méthode traversera tous les nœuds descendants du nœud actuel et normalisera le document en supprimant les nœuds Texte vides et en fusionnant tous les nœuds Texte adjacents. Cette méthode est utile pour simplifier la structure de l'arborescence du document après l'insertion ou la suppression de nœuds.
cloneNode
Crée une copie exacte du nœud spécifié
1XmlNode XmlDocument.cloneNode(Boolean deep = true);
Paramètres d'appel :
- deep: Booléen, s'il faut copier en profondeur, lorsque c'est vrai, le nœud cloné clonera tous les nœuds enfants du nœud d'origine
Résultats de retour :
- XmlNode, renvoie le nœud copié
Cette méthode copiera et renverra une copie du nœud sur lequel elle a été appelée. Si l'argument qui lui est transmis est vrai, il copiera également de manière récursive tous les nœuds descendants du nœud actuel. Sinon, il copie uniquement le nœud actuel. Le nœud renvoyé n'appartient pas à l'arborescence du document et sa propriété parentNode est nulle. Lorsqu'un nœud Element est copié, toutes ses propriétés seront copiées.
lookupPrefix
Renvoie le préfixe correspondant à l'URI de l'espace de noms spécifié sur le nœud actuel
1String XmlDocument.lookupPrefix(String namespaceURI);
Paramètres d'appel :
- namespaceURI: String, spécifie l'URI de l'espace de noms correspondant
Résultats de retour :
- String, renvoie le préfixe correspondant, renvoie null s'il ne correspond pas.
lookupNamespaceURI
Renvoie l'URI de l'espace de noms correspondant au préfixe spécifié sur le nœud actuel
1String XmlDocument.lookupNamespaceURI(String prefix);
Paramètres d'appel :
- prefix: String, spécifie le préfixe correspondant
Résultats de retour :
- String, renvoie l'URI de l'espace de noms correspondant, renvoie null s'il ne correspond pas.
insertBefore
Insérer un nouveau nœud enfant avant un nœud enfant existant
1
2XmlNode XmlDocument.insertBefore(XmlNode newChild,
XmlNode refChild);
Paramètres d'appel :
Résultats de retour :
- XmlNode, renvoie le nouveau nœud enfant
Si newChild existe déjà dans l’arborescence des documents, il sera supprimé de l’arborescence des documents et réinséré à sa nouvelle position. Les nœuds d'un document (ou les nœuds créés par un document) ne peuvent pas être insérés dans un autre document. Autrement dit, l'attribut OwnerDocument de newChild doit être le même que l'attribut OwnerDocument du nœud actuel.
insertAfter
Insérer un nouveau nœud enfant après un nœud enfant existant
1
2XmlNode XmlDocument.insertAfter(XmlNode newChild,
XmlNode refChild);
Paramètres d'appel :
Résultats de retour :
- XmlNode, renvoie le nouveau nœud enfant
Si newChild existe déjà dans l’arborescence des documents, il sera supprimé de l’arborescence des documents et réinséré à sa nouvelle position. Les nœuds d'un document (ou les nœuds créés par un document) ne peuvent pas être insérés dans un autre document. Autrement dit, l'attribut OwnerDocument de newChild doit être le même que l'attribut OwnerDocument du nœud actuel.
appendChild
Ajoute un nouveau nœud enfant à la fin de la liste des nœuds enfants d'un nœud
1XmlNode XmlDocument.appendChild(XmlNode newChild);
Paramètres d'appel :
- newChild:XmlNode, spécifiez le nœud ajouté
Résultats de retour :
- XmlNode, renvoie ce nouveau nœud enfant
Si newChild existe déjà dans l’arborescence des documents, il sera supprimé de l’arborescence des documents et réinséré à sa nouvelle position. Les nœuds d'un document (ou les nœuds créés par un document) ne peuvent pas être insérés dans un autre document. Autrement dit, l'attribut OwnerDocument de newChild doit être le même que l'attribut OwnerDocument du nœud actuel.
replaceChild
Remplacer un nœud enfant par un autre
1
2XmlNode XmlDocument.replaceChild(XmlNode newChild,
XmlNode oldChild);
Paramètres d'appel :
Résultats de retour :
- XmlNode, Si le remplacement réussit, cette méthode peut renvoyer le nœud remplacé. Si le remplacement échoue, elle renvoie null.
Si newChild existe déjà dans l’arborescence des documents, il sera supprimé de l’arborescence des documents et réinséré à sa nouvelle position. Les nœuds d'un document (ou les nœuds créés par un document) ne peuvent pas être insérés dans un autre document. Autrement dit, l'attribut OwnerDocument de newChild doit être le même que l'attribut OwnerDocument du nœud actuel.
removeChild
Supprimer un nœud de la liste des nœuds enfants
1XmlNode XmlDocument.removeChild(XmlNode oldChild);
Paramètres d'appel :
- oldChild:XmlNode, spécifie le nœud à supprimer
Résultats de retour :
- XmlNode, Si la suppression réussit, cette méthode peut renvoyer le nœud supprimé. En cas d'échec, elle renvoie null.
toString
Renvoie la représentation sous forme de chaîne de l'objet. Généralement, "[Native Object]" est renvoyé. L'objet peut être réimplémenté en fonction de ses propres caractéristiques.
1String XmlDocument.toString();
Résultats de retour :
- String, renvoie la représentation sous forme de chaîne de l'objet
toJSON
Renvoie une représentation au format JSON de l'objet, renvoyant généralement une collection de propriétés lisibles définies par l'objet.
1Value XmlDocument.toJSON(String key = "");
Paramètres d'appel :
- key: Chaîne, non utilisée
Résultats de retour :
- Value, renvoie une valeur contenant du JSON sérialisable