Un code d'opération XMLdom pour faciliter le code qui doit être combiné avec XML <script language=vbscript runat=server>
'================================================== = ===========
'Auteur : Soyez vous-même
'Heure : 2005-3-15
=================================================== ==========
Classe XMLClass
ObjXml privé
XMLDoc privé
Chemin XML privé
'//================================================ = =============
'<!--Événements lors de l'initialisation et de la déconnexion de la classe-->
Sous-classe_initialize
Définir objXml = Server.CreateObject(MSXML2.DOMDocument)
objXml.preserveWhiteSpace = vrai
objXml.async = faux
Fin du sous-marin
Sous-Classe_Terminate
Définir objXml = Rien
Fin du sous-marin
'//================================================ = =============
'<!--Créer un nouveau document XML-->
Fonction publique CreateNew(sName)
Définir tmpNode = objXml.createElement(sName)
objXml.appendChild(tmpNode)
Définir CreateNew = tmpNode
Fonction de fin
'<!--Lire le document XML de l'extérieur -->
Fonction publique OpenXml(sPath)
OpenXml=Faux
sPath=Serveur.MapPath(sPath)
'Réponse.Écrire(sChemin)
xmlPath = sChemin
Si objXml.load(sPath) Alors
Définir xmlDoc = objXml.documentElement
OpenXml=Vrai
Fin si
Fonction de fin
'<!--Lire la chaîne XML de l'extérieur -->
Sous-charge public public (sStr)
objXml.loadXML(sStr)
Définir xmlDoc = objXml.documentElement
Fin du sous-marin
Sous-public InceptXml (xObj)
Définir objXml = xObj
Définir xmlDoc = xObj.documentElement
Fin du sous-marin
'//================================================ = =============
'<!--Ajouter un nouveau nœud-->
Fonction publique AddNode(sNode,rNode)
' Nom du nœud sNode STRING
'rNode OBJECT ajoute la référence de nœud supérieure du nœud
'================================================== = ============
DimTmpNoeud
Définir TmpNode = objXml.createElement(sNode)
rNode.appendChild TmpNode
Définir AddNode = TmpNode
Fonction de fin
'<!--Ajouter un nouvel attribut-->
Fonction publique AddAttribute(sName,sValue,oNode)
' sName STRING nom de l'attribut
' Valeur de l'attribut sValue STRING
' Objet oNode OBJECT avec des attributs ajoutés
'================================================== = ============
oNode.setAttribute sName,sValue
Fonction de fin
'<!--Ajouter le contenu du nœud-->
Fonction publique AddText (FStr, cdBool, oNode)
Dim tmpTexte
Si cdBool Alors
Définir tmpText = objXml.createCDataSection(FStr)
Autre
Définir tmpText = objXml.createTextNode(FStr)
Fin si
oNode.appendChild tmpText
Fonction de fin
'================================================== = ================================================== = =====
'<!--Obtenir la valeur de l'attribut spécifié du nœud-->
Fonction publique GetAtt(aName,oNode)
' aName STRING nom de l'attribut
' oNode OBJECT référence du nœud
'================================================== = ============
dim Valeur tmp
tmpValue = oNode.getAttribute (unNom)
GetAtt = tmpValue
Fonction de fin
'<!--Obtenir le nom du nœud-->
Fonction publique GetNodeName(oNode)
' oNode OBJECT référence du nœud
GetNodeName = oNode.nodeName
Fonction de fin
'<!--Obtenir le contenu du nœud-->
Fonction publique GetNodeText(oNode)
' oNode OBJECT référence du nœud
GetNodeText = oNode.childNodes(0).nodeValue
Fonction de fin
'<!--Obtenir le type de nœud-->
Fonction publique GetNodeType(oNode)
' oNode OBJECT référence du nœud
GetNodeType = oNode.nodeValue
Fonction de fin
'<!--Trouver tous les nœuds avec le même nom de nœud-->
Fonction publique FindNodes(sNode)
Dim tmpNodes
Définir tmpNodes = objXml.getElementsByTagName(sNode)
Définir FindNodes = tmpNodes
Fonction de fin
'<!--Vérifier un nœud identique-->
Fonction publique FindNode(sNode)
DimTmpNoeud
Définir TmpNode=objXml.selectSingleNode(sNode)
Définir FindNode = TmpNode
Fonction de fin
'<!--Supprimer un nœud-->
Fonction publique DelNode(sNode)
Dim TmpNodes,Nodesss
Définir TmpNodes=objXml.selectSingleNode(sNode)
Définir Nodesss=TmpNodes.parentNode
Nodesss.removeChild(TmpNodes)
Fonction de fin
'<!--Remplacer un nœud-->
Fonction publique ReplaceNode(sNode,sText,cdBool)
'remplacerEnfant
Dim TmpNodes,tmpText
Définir TmpNodes=objXml.selectSingleNode(sNode)
'AddText sText, cdBool, TmpNodes
Si cdBool Alors
Définir tmpText = objXml.createCDataSection(sText)
Autre
Définir tmpText = objXml.createTextNode(sText)
Fin si
TmpNodes.replaceChild tmpText,TmpNodes.firstChild
Fonction de fin
Instruction de traitement de fonction privée
'//--Créer une déclaration XML
Dim objPi
Définir objPi = objXML.createProcessingInstruction(xml, version=&chr(34)&1.0&chr(34)& encoding=&chr(34)&gb2312&chr(34))
'//--Ajouter la vie XML au document XML
objXML.insertAvant objPi, objXML.childNodes(0)
Fonction de fin
'//================================================ = ==============================
'<!--Enregistrer le document XML-->
Fonction publique SaveXML()
'Instruction de traitement()
objXml.save(xmlPath)
Fonction de fin
'<!--Enregistrer le document XML-->
Fonction publique SaveAsXML(sPath)
TraitementInstruction()
objXml.save(sPath)
Fonction de fin
'//================================================ = ===================================
'Statistiques associées
'<!--Obtenir le nœud racine-->
Propriété Obtenir la racine
Définir racine = xmlDoc
Propriété de fin
'<!--Obtenir le nombre de nœuds enfants sous le nœud racine-->
Propriété Obtenir la longueur
Longueur = xmlDoc.childNodes.length
Propriété de fin
'//================================================ = ===================================
'Tests associés
Propriété GetTestNode
TestNode = xmlDoc.childNodes(0).text
Propriété de fin
Fin du cours
</script>