Ottieni il titolo da un pannello Graph BuilderMi servirebbe un aiuto per capire perché non riesco a ottenere il titolo del primo pannello in questo generatore di grafici

con questo codice
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>Automazione e scripting</LINGO-LABEL></LINGO-LABS>Re: Ottieni il titolo da un pannello Graph BuilderAh, interessante. Non ci avevo mai fatto caso - o non me ne ero mai preoccupato:
Con alcuni parser Xpath si ottiene già il contenuto del nodo
https://www.w3schools.com/xml/xpath_examples.asp
http://xpather.com/
Ad esempio dopo aver incollato il risultato di
xml= current report() << Get XML;
in http://xpather.com/ e cercando
(//OutlineBox[text()='Graph Builder']//GraphBuilderGroupBox)[2]
si ottiene: "età = 13"

JMP e altri
https://www.freeformatter.com/xpath-tester.html
https://magictool.ai/tool/xpath-tester/de/
http://xpather.com/ (impostazione: nodo)
restituisce l'"oggetto" circostante.
Quindi, bisogna recuperare il contenuto del nodo in un passaggio separato...
Immagino che ci sia un modo più semplice di questo...
Finché qualcuno non lo pubblica, puoi usarlo
report=current report();
test=(report<< XPath("(//OutlineBox[text()='Graph Builder']//GraphBuilderGroupBox)[2]"))[1];
xml= test << Get XML;
Regex (xml, ">(.*?)<\/GraphBuilderGroupBox>", "\1")
a proposito - grazie per il trucco:
l'indicizzazione diretta tramite [2] è possibile in XPath - fantastico, grazie!!!

Re: Ottieni il titolo da un pannello Graph BuilderSe controlli l'XML per un singolo GraphBuilderGroupBox puoi vedere che stai cercando il valore dall'XML
"<GRAPHBUILDERGROUPBOX width="\!" 570="">age = 12</GRAPHBUILDERGROUPBOX>"
E puoi ottenere quel valore usando XPath
gbb_texts = (Report(gb) << XPath("(//GraphBuilderGroupBox/text())"));<BR />// {"age = 12", "age = 13", "age = 14", "age = 15", "age = 16", "age = 17"}
E se vuoi solo ottenere il primo, puoi limitare l'indice già presente in XPath (come hai fatto) e quindi prendere il primo indice da quello come << XPath restituirà un elenco (molto probabilmente salterei l'indice XPath in questo caso, poiché devi comunque usare l'indice di JMP)
gbb_text = (Report(gb) << XPath("((//GraphBuilderGroupBox/text()))[1]"))[1];<BR />// or gbb_text = (Report(gb) << XPath("(//GraphBuilderGroupBox)[1]/text()"))[1];
con solo indice 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"}
Re: Ottieni il titolo da un pannello Graph BuilderEvviva!
Grazie @hogi e @jthi ! Come al solito, un aiuto rapido e straordinario.
Il motivo della richiesta era che avevo bisogno di avere diverse impostazioni degli assi per diversi pannelli, ma poiché il numero di pannelli cambia, la codifica rigida dell'intervallo degli assi dallo script salvato che Graph Builder crea (ad esempio Scalebox(2)) fa sì che i grafici siano tutti incasinati in seguito quando lo eseguo. Quindi ora posso usare questo codice per scorrere i pannelli, controllare cosa c'è e quindi impostare correttamente il minimo e il massimo dell'asse. C'è ancora molta codifica dolorosa da fare, ma almeno ora ho un percorso!
Steve