Je commence à me frotter à XML façon Javascript (pour sauvegarder les
paramètres de mon application, à part JSON c'est encore ce qu'on fait de
mieux, pas vrai ?) et on ne peut pas dire que ce début soit très glorieux.
Voilà ce que j'ai envoyé comme sauce dans un fichier js :
x = WScript.CreateObject("Microsoft.XMLDOM");
// ben quoi, c'est pour exécuter avec un outil Microsoft
x.loadXML("<root><param>des figues des bananes des noix</param></root>");
var text = x.childNodes[0].OuterXml;
WScript.Echo(text);
Et ça m'affiche une chaîne vide.
Je trouve que ça ne nourrit pas son homme.
Si je mets des guillemets autour ça consent à se transformer en "undefined".
Quelqu'un peut-il comprendre que je n'y pige que dalle ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Gloops
Le 24/01/2016 16:33, Gloops a écrit :
Bonjour tout le monde,
Je commence à me frotter à XML façon Javascript (pour sauvegarder les paramètres de mon application, à part JSON c'est encore ce qu'on fait de mieux, pas vrai ?) et on ne peut pas dire que ce début soit très glorieux.
Voilà ce que j'ai envoyé comme sauce dans un fichier js :
x = WScript.CreateObject("Microsoft.XMLDOM"); // ben quoi, c'est pour exécuter avec un outil Microsoft x.loadXML("<root><param>des figues des bananes des noix</param></root>"); var text = x.childNodes[0].OuterXml;
WScript.Echo(text);
Et ça m'affiche une chaîne vide. Je trouve que ça ne nourrit pas son homme.
Si je mets des guillemets autour ça consent à se transformer en "undefined".
Quelqu'un peut-il comprendre que je n'y pige que dalle ?
Et alors maintenant je me réfère https://msdn.microsoft.com/en-us/library/system.xml.xmlnode.haschildnodes%28v=vs.110%29.aspx
et à mon fichier j'ajoute :
var root = x.FirstChild; WScript.Echo(root.HasChildNodes?"true":"false");
et il m'est répondu que root.HasChildNodes a la valeur Null ou n'est pas un objet.
Ah bon, mais alors si sa propriété HasChildNodes a la valeur Null, je fais comment pour admettre que root est un objet de type XmlNode ?
Le 24/01/2016 16:33, Gloops a écrit :
Bonjour tout le monde,
Je commence à me frotter à XML façon Javascript (pour sauvegarder les
paramètres de mon application, à part JSON c'est encore ce qu'on fait de
mieux, pas vrai ?) et on ne peut pas dire que ce début soit très glorieux.
Voilà ce que j'ai envoyé comme sauce dans un fichier js :
x = WScript.CreateObject("Microsoft.XMLDOM");
// ben quoi, c'est pour exécuter avec un outil Microsoft
x.loadXML("<root><param>des figues des bananes des noix</param></root>");
var text = x.childNodes[0].OuterXml;
WScript.Echo(text);
Et ça m'affiche une chaîne vide.
Je trouve que ça ne nourrit pas son homme.
Si je mets des guillemets autour ça consent à se transformer en
"undefined".
Quelqu'un peut-il comprendre que je n'y pige que dalle ?
Et alors maintenant je me réfère
https://msdn.microsoft.com/en-us/library/system.xml.xmlnode.haschildnodes%28v=vs.110%29.aspx
et à mon fichier j'ajoute :
var root = x.FirstChild;
WScript.Echo(root.HasChildNodes?"true":"false");
et il m'est répondu que root.HasChildNodes a la valeur Null ou n'est pas
un objet.
Ah bon, mais alors si sa propriété HasChildNodes a la valeur Null, je
fais comment pour admettre que root est un objet de type XmlNode ?
Je commence à me frotter à XML façon Javascript (pour sauvegarder les paramètres de mon application, à part JSON c'est encore ce qu'on fait de mieux, pas vrai ?) et on ne peut pas dire que ce début soit très glorieux.
Voilà ce que j'ai envoyé comme sauce dans un fichier js :
x = WScript.CreateObject("Microsoft.XMLDOM"); // ben quoi, c'est pour exécuter avec un outil Microsoft x.loadXML("<root><param>des figues des bananes des noix</param></root>"); var text = x.childNodes[0].OuterXml;
WScript.Echo(text);
Et ça m'affiche une chaîne vide. Je trouve que ça ne nourrit pas son homme.
Si je mets des guillemets autour ça consent à se transformer en "undefined".
Quelqu'un peut-il comprendre que je n'y pige que dalle ?
Et alors maintenant je me réfère https://msdn.microsoft.com/en-us/library/system.xml.xmlnode.haschildnodes%28v=vs.110%29.aspx
et à mon fichier j'ajoute :
var root = x.FirstChild; WScript.Echo(root.HasChildNodes?"true":"false");
et il m'est répondu que root.HasChildNodes a la valeur Null ou n'est pas un objet.
Ah bon, mais alors si sa propriété HasChildNodes a la valeur Null, je fais comment pour admettre que root est un objet de type XmlNode ?
Gloops
Le 24/01/2016 16:33, Gloops a écrit :
Bonjour tout le monde,
Je commence à me frotter à XML façon Javascript (pour sauvegarder les paramètres de mon application, à part JSON c'est encore ce qu'on fait de mieux, pas vrai ?) et on ne peut pas dire que ce début soit très glorieux.
Voilà ce que j'ai envoyé comme sauce dans un fichier js :
x = WScript.CreateObject("Microsoft.XMLDOM"); // ben quoi, c'est pour exécuter avec un outil Microsoft x.loadXML("<root><param>des figues des bananes des noix</param></root>"); var text = x.childNodes[0].OuterXml;
WScript.Echo(text);
Et ça m'affiche une chaîne vide. Je trouve que ça ne nourrit pas son homme.
Si je mets des guillemets autour ça consent à se transformer en "undefined".
Quelqu'un peut-il comprendre que je n'y pige que dalle ?
d'où il ressort que InnerXml et OuterXml ne servent pas dans ce contexte, à la place il convient de s'intéresser à nodeValue.
Une chose me surprend encore : j'ai ajouté du texte dans un nœud, le résultat est différent selon que je le place avant ou après le nœud enfant. C'est le premier qui apparaît qui prime, je ne réussis pas à accéder à l'autre. ça ne devrait pas m'empêcher de réaliser ce que j'ai en tête pour l'instant, mais il faudra que je finisse par comprendre.
Mon fichier est devenu ça :
shell = WScript.CreateObject("WScript.Shell"); x = WScript.CreateObject("Microsoft.XMLDOM") x.loadXML("<root><param chose='bidule'>des figues des bananes des noix</param>du texte ici</root>"); var text = ""; var N = x.childNodes; WScript.Echo(N.length); en = N[0];
var root = x.documentElement; WScript.Echo(root.nodeName); WScript.Echo(root.hasChildNodes?"true":"false");
e1 = root.childNodes[0];
if(e1.nodeType==3 || e1.nodeType==4){ WScript.Echo(e1.nodeValue); }else{ WScript.Echo("Ce n'est pas une fille c'est un noeud"); // plus qu'un noeux, non ? } WScript.Echo("e1 vaut " + e1.nodeValue);
Je commence à me frotter à XML façon Javascript (pour sauvegarder les
paramètres de mon application, à part JSON c'est encore ce qu'on fait de
mieux, pas vrai ?) et on ne peut pas dire que ce début soit très glorieux.
Voilà ce que j'ai envoyé comme sauce dans un fichier js :
x = WScript.CreateObject("Microsoft.XMLDOM");
// ben quoi, c'est pour exécuter avec un outil Microsoft
x.loadXML("<root><param>des figues des bananes des noix</param></root>");
var text = x.childNodes[0].OuterXml;
WScript.Echo(text);
Et ça m'affiche une chaîne vide.
Je trouve que ça ne nourrit pas son homme.
Si je mets des guillemets autour ça consent à se transformer en
"undefined".
Quelqu'un peut-il comprendre que je n'y pige que dalle ?
d'où il ressort que InnerXml et OuterXml ne servent pas dans ce
contexte, à la place il convient de s'intéresser à nodeValue.
Une chose me surprend encore : j'ai ajouté du texte dans un nœud, le
résultat est différent selon que je le place avant ou après le nœud
enfant. C'est le premier qui apparaît qui prime, je ne réussis pas à
accéder à l'autre. ça ne devrait pas m'empêcher de réaliser ce que j'ai
en tête pour l'instant, mais il faudra que je finisse par comprendre.
Mon fichier est devenu ça :
shell = WScript.CreateObject("WScript.Shell");
x = WScript.CreateObject("Microsoft.XMLDOM")
x.loadXML("<root><param chose='bidule'>des figues des bananes des
noix</param>du texte ici</root>");
var text = "";
var N = x.childNodes;
WScript.Echo(N.length);
en = N[0];
var root = x.documentElement;
WScript.Echo(root.nodeName);
WScript.Echo(root.hasChildNodes?"true":"false");
e1 = root.childNodes[0];
if(e1.nodeType==3 || e1.nodeType==4){
WScript.Echo(e1.nodeValue);
}else{
WScript.Echo("Ce n'est pas une fille c'est un noeud");
// plus qu'un noeux, non ?
}
WScript.Echo("e1 vaut " + e1.nodeValue);
Je commence à me frotter à XML façon Javascript (pour sauvegarder les paramètres de mon application, à part JSON c'est encore ce qu'on fait de mieux, pas vrai ?) et on ne peut pas dire que ce début soit très glorieux.
Voilà ce que j'ai envoyé comme sauce dans un fichier js :
x = WScript.CreateObject("Microsoft.XMLDOM"); // ben quoi, c'est pour exécuter avec un outil Microsoft x.loadXML("<root><param>des figues des bananes des noix</param></root>"); var text = x.childNodes[0].OuterXml;
WScript.Echo(text);
Et ça m'affiche une chaîne vide. Je trouve que ça ne nourrit pas son homme.
Si je mets des guillemets autour ça consent à se transformer en "undefined".
Quelqu'un peut-il comprendre que je n'y pige que dalle ?
d'où il ressort que InnerXml et OuterXml ne servent pas dans ce contexte, à la place il convient de s'intéresser à nodeValue.
Une chose me surprend encore : j'ai ajouté du texte dans un nœud, le résultat est différent selon que je le place avant ou après le nœud enfant. C'est le premier qui apparaît qui prime, je ne réussis pas à accéder à l'autre. ça ne devrait pas m'empêcher de réaliser ce que j'ai en tête pour l'instant, mais il faudra que je finisse par comprendre.
Mon fichier est devenu ça :
shell = WScript.CreateObject("WScript.Shell"); x = WScript.CreateObject("Microsoft.XMLDOM") x.loadXML("<root><param chose='bidule'>des figues des bananes des noix</param>du texte ici</root>"); var text = ""; var N = x.childNodes; WScript.Echo(N.length); en = N[0];
var root = x.documentElement; WScript.Echo(root.nodeName); WScript.Echo(root.hasChildNodes?"true":"false");
e1 = root.childNodes[0];
if(e1.nodeType==3 || e1.nodeType==4){ WScript.Echo(e1.nodeValue); }else{ WScript.Echo("Ce n'est pas une fille c'est un noeud"); // plus qu'un noeux, non ? } WScript.Echo("e1 vaut " + e1.nodeValue);
Une chose me surprend encore : j'ai ajouté du texte dans un nœud, le résultat est différent selon que je le place avant ou après le nœud enfant. C'est le premier qui apparaît qui prime, je ne réussis pas à accéder à l'autre. ça ne devrait pas m'empêcher de réaliser ce que j'ai en tête pour l'instant, mais il faudra que je finisse par comprendre.
ça y est, il s'avère que le texte est un élément enfant du nœud auquel il appartient.
Ainsi sur le contenu
<root> <param chose='bidule'> des figues des bananes des noix </param> du texte ici </root>");
avec le code ci-dessous j'obtiens ce résultat : ___________ root param <.> #text des figues des bananes des noix #text du texte ici ___________ ce qui à l'indentation près correspond bien au texte qu'on peut y trouver.
x = WScript.CreateObject("Microsoft.XMLDOM") x.loadXML("<root><param chose='bidule'>des figues des bananes des noix</param>du texte ici</root>");
var root = x.documentElement; WScript.Echo(root.nodeName);
decrit(root);
try{ WScript.StdIn.Read(1); }catch(exception){}
function decrit(prt) { var e = new Enumerator(prt.childNodes); for(; !e.atEnd(); e.moveNext()){ WScript.Echo(e.item().nodeName); if(e.item().nodeType == 3 || e.item().nodeType == 4) { WScript.Echo(e.item().nodeValue); } else { WScript.Echo("<.>"); } if(e.item().hasChildNodes) { decrit(e.item()); } } }
function test() { WScript.Echo("Nombre d'éléments sous la racine : " + root.childNodes.length); WScript.Echo("Le premier : " + root.childNodes[0].nodeValue); WScript.Echo("avec " + root.childNodes[0].childNodes.length + " enfants"); WScript.Echo("Le deuxième : " + root.childNodes[1].nodeValue); e1 = root.childNodes[0];
if(e1.nodeType==3 || e1.nodeType==4){ WScript.Echo(e1.nodeValue); }else{ WScript.Echo("Ce n'est pas une fille c'est un noeud"); } WScript.Echo("e1 vaut " + e1.nodeValue);
Une chose me surprend encore : j'ai ajouté du texte dans un nœud, le
résultat est différent selon que je le place avant ou après le nœud
enfant. C'est le premier qui apparaît qui prime, je ne réussis pas à
accéder à l'autre. ça ne devrait pas m'empêcher de réaliser ce que j'ai
en tête pour l'instant, mais il faudra que je finisse par comprendre.
ça y est, il s'avère que le texte est un élément enfant du nœud auquel
il appartient.
Ainsi sur le contenu
<root>
<param chose='bidule'>
des figues des bananes des noix
</param>
du texte ici
</root>");
avec le code ci-dessous j'obtiens ce résultat :
___________
root
param
<.>
#text
des figues des bananes des noix
#text
du texte ici
___________
ce qui à l'indentation près correspond bien au texte qu'on peut y trouver.
x = WScript.CreateObject("Microsoft.XMLDOM")
x.loadXML("<root><param chose='bidule'>des figues des bananes des
noix</param>du texte ici</root>");
var root = x.documentElement;
WScript.Echo(root.nodeName);
decrit(root);
try{
WScript.StdIn.Read(1);
}catch(exception){}
function decrit(prt)
{
var e = new Enumerator(prt.childNodes);
for(; !e.atEnd(); e.moveNext()){
WScript.Echo(e.item().nodeName);
if(e.item().nodeType == 3 || e.item().nodeType == 4)
{
WScript.Echo(e.item().nodeValue);
}
else
{
WScript.Echo("<.>");
}
if(e.item().hasChildNodes)
{
decrit(e.item());
}
}
}
function test()
{
WScript.Echo("Nombre d'éléments sous la racine : " +
root.childNodes.length);
WScript.Echo("Le premier : " + root.childNodes[0].nodeValue);
WScript.Echo("avec " + root.childNodes[0].childNodes.length + " enfants");
WScript.Echo("Le deuxième : " + root.childNodes[1].nodeValue);
e1 = root.childNodes[0];
if(e1.nodeType==3 || e1.nodeType==4){
WScript.Echo(e1.nodeValue);
}else{
WScript.Echo("Ce n'est pas une fille c'est un noeud");
}
WScript.Echo("e1 vaut " + e1.nodeValue);
Une chose me surprend encore : j'ai ajouté du texte dans un nœud, le résultat est différent selon que je le place avant ou après le nœud enfant. C'est le premier qui apparaît qui prime, je ne réussis pas à accéder à l'autre. ça ne devrait pas m'empêcher de réaliser ce que j'ai en tête pour l'instant, mais il faudra que je finisse par comprendre.
ça y est, il s'avère que le texte est un élément enfant du nœud auquel il appartient.
Ainsi sur le contenu
<root> <param chose='bidule'> des figues des bananes des noix </param> du texte ici </root>");
avec le code ci-dessous j'obtiens ce résultat : ___________ root param <.> #text des figues des bananes des noix #text du texte ici ___________ ce qui à l'indentation près correspond bien au texte qu'on peut y trouver.
x = WScript.CreateObject("Microsoft.XMLDOM") x.loadXML("<root><param chose='bidule'>des figues des bananes des noix</param>du texte ici</root>");
var root = x.documentElement; WScript.Echo(root.nodeName);
decrit(root);
try{ WScript.StdIn.Read(1); }catch(exception){}
function decrit(prt) { var e = new Enumerator(prt.childNodes); for(; !e.atEnd(); e.moveNext()){ WScript.Echo(e.item().nodeName); if(e.item().nodeType == 3 || e.item().nodeType == 4) { WScript.Echo(e.item().nodeValue); } else { WScript.Echo("<.>"); } if(e.item().hasChildNodes) { decrit(e.item()); } } }
function test() { WScript.Echo("Nombre d'éléments sous la racine : " + root.childNodes.length); WScript.Echo("Le premier : " + root.childNodes[0].nodeValue); WScript.Echo("avec " + root.childNodes[0].childNodes.length + " enfants"); WScript.Echo("Le deuxième : " + root.childNodes[1].nodeValue); e1 = root.childNodes[0];
if(e1.nodeType==3 || e1.nodeType==4){ WScript.Echo(e1.nodeValue); }else{ WScript.Echo("Ce n'est pas une fille c'est un noeud"); } WScript.Echo("e1 vaut " + e1.nodeValue);