J'ai le problème que je ne peux pas sélectionner un nœud XML spécifique qui doit être supprimé. J'ai déjà essayé de sélectionner le noeud en utilisant le XPath qui fonctionne bien pour certains fichiers XML, mais je ne peux pas trouver le bon XPath pour un noeud dans un fichier plus complexe.Comment puis-je supprimer un nœud spécifique dans un fichier XML en utilisant vbscript
Est-ce que quelqu'un connaît un outil freeware qui peut charger un fichier XML pour que l'utilisateur puisse sélectionner un nœud spécifique et recevoir le XPath précis sans avoir une énumération dans le chemin?
/root/anything[2]
< - Malheureusement, je ne peux pas utiliser une telle instruction car le numéro de l'élément peut changer. J'ai besoin d'une expression basée sur un attribut.
Dans le cas où il n'y a pas d'outil freeware pour cette opération, quelqu'un sait-il d'une autre façon comment je peux sélectionner le nœud nécessaire?
XML Exemple:
Noeud racine: SmsFormData
Attributs: xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns: XSD = "http://www.w3.org/2001/XMLSchema" FormatVersion = "1.0" xmlns = "http://schemas.microsoft.com/SystemsManagementServer/2005/03/ConsoleFramework"
de nœud enfant : Formulaire
Attributs: Id = "certains GUID" CustomData = "Certaines données" FormType = "un certain type" forceRefresh = "false"
enfant/nœud enfant: Pages
enfant/enfant/nœud enfant: page
Attributs: VendorId = "VendorName" id = "certains GUID" Assembly = "dll nom du fichier" Namespace = "certains namespace" type = "un certain type" HelpID = "">
Mon expression XPath pour sélectionner cette page spécifique serait maintenant:
xPath =/SmsFormData/Form/Pages/Page[@Id="some Guid"]
Pour la sélection, je suis en utilisant le code vbscript suivant:
Set objDOM = CreateObject("Msxml2.DOMDocument.4.0")
objDOM.async = false
objDOM.load(file)
set objNode = objDOM.selectSingleNode(xPath)
Le problème est maintenant que l'objet objNode
est vide. Le noeud n'est pas sélectionné, mais pourquoi?
Comment sur les échantillons du fichier XML avec lesquels vous essayez de travailler? – Kev