Obtenir le titre à partir d'un panneau de création de graphiquesJ'aurais besoin d'aide pour savoir pourquoi je ne peux pas obtenir le titre du 1er panneau dans ce générateur de graphiques

avec ce code
report=current report();
test=(report<< XPath("(//OutlineBox[text()='Graph Builder']//GraphBuilderGroupBox)[2]"))<<GET title=""></GET>Thanks for any suggestions!
Steve
<LINGO-LABS id="lingo-labs-818485" slang="en-US" mode="CREATE"><LINGO-LABEL>Automatisation et scripts</LINGO-LABEL></LINGO-LABS>Ré: Obtenir le titre à partir d'un panneau de création de graphiquesAh, intéressant. Je n'avais jamais remarqué - ou m'en souciais :
Avec certains analyseurs Xpath, on obtient déjà le contenu du nœud
https://www.w3schools.com/xml/xpath_examples.asp
http://xpather.com/
Par exemple, après avoir collé le résultat de
xml= current report() << Get XML;
dans http://xpather.com/ et recherchez
(//OutlineBox[text()='Graph Builder']//GraphBuilderGroupBox)[2]
on obtient : "âge = 13"

JMP et autres
https://www.freeformatter.com/xpath-tester.html
https://magictool.ai/tool/xpath-tester/de/
http://xpather.com/ (paramètre : nœud)
renvoie l'« objet » environnant.
Il faut donc récupérer le contenu du nœud dans une étape distincte...
Je suppose qu'il existe un moyen plus simple que celui-ci...
Jusqu'à ce que quelqu'un le publie, vous pouvez l'utiliser
report=current report();
test=(report<< XPath("(//OutlineBox[text()='Graph Builder']//GraphBuilderGroupBox)[2]"))[1];
xml= test << Get XML;
Regex (xml, ">(.*?)<\/GraphBuilderGroupBox>", "\1")
au fait - merci pour l'astuce :
l'indexation directe via [2] est possible dans XPath - cool, merci !!!

Ré: Obtenir le titre à partir d'un panneau de création de graphiquesSi vous vérifiez le XML pour un seul GraphBuilderGroupBox, vous pouvez voir que vous recherchez la valeur à partir du XML
"<GRAPHBUILDERGROUPBOX width="\!" 570="">age = 12</GRAPHBUILDERGROUPBOX>"
Et vous pouvez obtenir cette valeur en utilisant XPath
gbb_texts = (Report(gb) << XPath("(//GraphBuilderGroupBox/text())"));<BR />// {"age = 12", "age = 13", "age = 14", "age = 15", "age = 16", "age = 17"}
Et si vous voulez juste obtenir le premier, vous pouvez limiter l'index déjà dans XPath (comme vous l'avez fait) puis prendre le premier index à partir de celui-ci car << XPath renverra une liste (je sauterais probablement l'index XPath dans ce cas, car vous devez toujours utiliser l'index de JMP)
gbb_text = (Report(gb) << XPath("((//GraphBuilderGroupBox/text()))[1]"))[1];<BR />// or gbb_text = (Report(gb) << XPath("(//GraphBuilderGroupBox)[1]/text()"))[1];
avec juste l'index JMP
gbb_text= (Report(gb) << XPath("//GraphBuilderGroupBox/text()"))[1];
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Show Control Panel(0),
Variables(X(:weight), Y(:height), Page(:age), Overlay(:sex)),
Elements(Points(X, Y, Legend(9)), Line Of Fit(X, Y, Legend(11)))
);
group_texts = (Report(gb) << XPath("//GraphBuilderGroupBox/text()"));
// {"age = 12", "age = 13", "age = 14", "age = 15", "age = 16", "age = 17"}
Ré: Obtenir le titre à partir d'un panneau de création de graphiquesOuah ouah !
Merci @hogi et @jthi ! Comme d'habitude, une aide rapide et incroyable.
La raison de cette demande était que j'avais besoin de paramètres d'axe différents pour différents panneaux, mais comme le nombre de panneaux change, le codage en dur de la plage d'axes à partir du script enregistré que Graph Builder crée (par exemple Scalebox(2)) provoque un désordre complet des graphiques lors des exécutions ultérieures. Je peux donc maintenant utiliser ce code pour parcourir les panneaux, vérifier ce qu'il y a, puis définir correctement les axes min et max. Il reste encore beaucoup de codage pénible à faire, mais au moins maintenant j'ai un chemin !
Steve