Ceci est l'extrait de mon code, cette partie est de lire le fichier XML et d'obtenir le dernier attribut enfant de Operations. Dans ce cas, je veux obtenir le type C. La chose est le script a sauté toute la boucle For
, comme le prouve l'écho que j'ai mis. J'ai fait quelques recherches et je ne pouvais toujours pas savoir ce qui ne va pas avec mon code.VBScript ne peut pas itérer les noeuds XML
Set FSO = CreateObject("Scripting.FileSystemObject")
Set xmlDoc = CreateObject("Microsoft.XMLDOM")
xmlDoc.Async = "False"
counter = 0
xmlDoc.Load(mostrecent(i).Name)
Set colNodes = xmlDoc.SelectNodes("/Runs/Run/Operations")
WScript.Echo counter '<--appears
For Each objNode In colNodes
WScript.Echo counter '<--didn't appear
If Attr.Exists(objNode.LastChild.GetAttribute("type")) Then
counter = counter + 1
WScript.Echo counter
End If
Next
XML:
<Runs>
<Run>
<Operations>
<Operation type="A"></Operation>
<Operation type="B"></Operation>
<Operation type="C"></Operation>
</Operations>
</Run>
</Runs>
Attr est un objet Dictionary, si la valeur d'attribut est l'une de la valeur dans le dictionnaire, contre + 1. – Zephyros
Si vous ne voyez aucune sortie de la boucle, cela signifie que 'SelectNodes' ne renvoie aucun noeud. Cela se produit généralement lorsque les données XML ont des espaces de noms. Votre XML actuel contient-il des attributs 'xmlns = ...' et/ou des nœuds ''? –
Non, mon XML commence et se termine par –
Zephyros