La classe (DOMParser) permet de manipuler des documents XML.
La classe (DOMParser) fournit la méthode (parseFromString) qui permet de charger des données XML.
La classe (Document) fournit la propriété (documentElement) qui permet de récupérer le noeud racine d'un document XML.
Création d'un document XML.
//===============================================
createDoc() {
var lXml = "";
lXml += sprintf("<?xml version='1.0' encoding='UTF-8'?>\n");
lXml += sprintf("<root></root>\n");
var lParser = new DOMParser();
this.m_doc = lParser.parseFromString(lXml, "text/xml");
if(!this.m_doc) return false;
this.m_node = this.m_doc.documentElement;
return true;
}
//===============================================
La classe (Document) fournit la méthode (createElement) qui permet de créer un noeud XML.
La classe (Element) fournit la propriété (childNodes) qui pointe la liste des noeuds enfant.
Chargement d'un noeud à partir de données XML.
//===============================================
loadNode(_root, _data) {
var lDom = _root.m_doc.createElement("template");
lDom.innerHTML = _data;
var lNodes = lDom.childNodes;
while(lNodes[0]) {
this.m_node.appendChild(lNodes[0]);
}
return true;
}
//===============================================
La classe (Element) fournit la méthode (appendChild) qui permet d'ajouter un nouveau à un noeud existant.
Ajout d'un nouveau noeud.
//===============================================
addObj(_root, _name) {
var lNode = _root.m_doc.createElement(_name);
this.m_node.appendChild(lNode);
return lNode;
}
//===============================================
La classe (Element) fournit la propriété (innerHTML) qui permet d'ajouter un contenu à un noeud.
Ajout d'un nouveau noeud avec un contenu.
//===============================================
addValue(_root, _name, _value) {
lNode = _root.m_doc.createElement(_name);
lNode.innerHTML = _value;
this.m_node.appendChild(lNode);
return this.m_node;
}
//===============================================
La classe (Document) fournit la méthode (createCDATASection) qui permet créer une section CData.
Ajout d'un contenu CData à un noeud.
//===============================================
setValue(_root, _value) {
var lCData = _root.m_doc.createCDATASection(_value);
this.m_node.appendChild(lCData);
}
//===============================================
La classe (Element) fournit la propriété (innerHTML) qui permet de récupérer le contenu d'un noeud.
Récupération du contenu d'un noeud XML.
//===============================================
getValue() {
lData = this.m_node.innerHTML;
return lData;
}
//===============================================
La classe (Element) fournit la propriété (firstElementChild) qui permet de récupérer le premier noeud enfant d'un noued existant.
La classe (Element) fournit la propriété (nodeValue) qui permet de récupérer le contenu d'un noeud XML.
Récupération du contenu CData d'un noeud XML.
//===============================================
getValue() {
lData = this.m_node.firstElementChild.nodeValue;
return lData;
}
//===============================================
La classe (Document) fournit la méthode (evaluate) qui permet récupérer le noeud lié à une requête XPath.
Récupération du noeud lié à une requête XPath.
//===============================================
getNode(_path) {
var lNode = this.m_node;
var lNodes = this.m_doc.evaluate(_path, lNode, null, XPathResult.ANY_TYPE, null);
lNodeI = lNodes.iterateNext();
return lNodeI;
}
//===============================================
Comptage du nombre de noeuds liés à une requête XPath.
//===============================================
countNode(_path) {
var lNode = this.m_node;
var lNodes = this.m_doc.evaluate(_path, lNode, null, XPathResult.ANY_TYPE, null);
while(1) {
var lNodeI = lNodes.iterateNext();
if(!lNodeI) break;
lCount++;
}
return lCount;
}
//===============================================
La classe (Element) fournit la propriété (outerHTML) qui permet récupérer le contenu d'un noeud XML.
Conversion d'un document XML en chaîne de caractères.
//===============================================
toString() {
var lData = this.m_doc.documentElement.outerHTML;
lData = sprintf("<?xml version='1.0' encoding='UTF-8'?>\n%s", lData);
return lData.toXml();
}
//===============================================
Conversion d'un noeud XML en chaîne de caractères.
//===============================================
toNode() {
var lData = this.m_node.outerHTML;
return lData.toXml();
}
//===============================================