Obtener el título de un panel de creación de gráficosMe vendría bien alguna ayuda sobre por qué no puedo obtener el título del primer panel en este generador de gráficos.

con este código
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>Automatización y scripting</LINGO-LABEL></LINGO-LABS>Re: Obtener el título de un panel de creación de gráficosAh, interesante. Nunca me había dado cuenta, ni me había preocupado:
Con algunos analizadores Xpath, uno ya obtiene el contenido del nodo
https://www.w3schools.com/xml/xpath_examples.asp
http://xpather.com/
Por ejemplo, después de pegar el resultado de
xml= current report() << Get XML;
en http://xpather.com/ y buscar
(//OutlineBox[text()='Graph Builder']//GraphBuilderGroupBox)[2]
Se obtiene: "edad = 13"

JMP y otros
https://www.freeformatter.com/xpath-tester.html
https://magictool.ai/tool/xpath-tester/de/
http://xpather.com/ (configuración: nodo)
devuelve el "objeto" circundante.
Por lo tanto, uno tiene que recuperar el contenido del nodo en un paso separado...
Supongo que hay una manera más fácil que ésta...
Hasta que alguien lo publique, puedes usarlo.
report=current report();
test=(report<< XPath("(//OutlineBox[text()='Graph Builder']//GraphBuilderGroupBox)[2]"))[1];
xml= test << Get XML;
Regex (xml, ">(.*?)<\/GraphBuilderGroupBox>", "\1")
Por cierto, gracias por el truco:
La indexación directa a través de [2] es posible en XPath. ¡Genial, gracias!

Re: Obtener el título de un panel de creación de gráficosSi revisa el XML de un solo GraphBuilderGroupBox, puede ver que está buscando el valor del XML.
"<GRAPHBUILDERGROUPBOX width="\!" 570="">age = 12</GRAPHBUILDERGROUPBOX>"
Y puedes obtener ese valor usando XPath
gbb_texts = (Report(gb) << XPath("(//GraphBuilderGroupBox/text())"));<BR />// {"age = 12", "age = 13", "age = 14", "age = 15", "age = 16", "age = 17"}
Y si solo desea obtener el primero, puede limitar el índice que ya está en XPath (como lo ha hecho) y luego tomar el primer índice de ese como << XPath devolverá una lista (lo más probable es que omita el índice XPath en este caso, ya que aún debe usar el índice de JMP)
gbb_text = (Report(gb) << XPath("((//GraphBuilderGroupBox/text()))[1]"))[1];<BR />// or gbb_text = (Report(gb) << XPath("(//GraphBuilderGroupBox)[1]/text()"))[1];
con solo índice 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: Obtener el título de un panel de creación de gráficos¡Guau, guau!
¡Gracias @hogi y @jthi ! Como siempre, una ayuda rápida y sorprendente.
El motivo de la consulta fue que necesito tener diferentes configuraciones de ejes para diferentes paneles, pero como la cantidad de paneles cambia, la codificación rígida del rango de ejes del script guardado que crea Graph Builder (por ejemplo, Scalebox(2)) hace que los gráficos se desordenen en momentos posteriores cuando lo ejecuto. Entonces, ahora puedo usar este código para recorrer los paneles, verificar lo que hay allí y luego configurar los valores mínimo y máximo de los ejes correctamente. Todavía queda mucho código tedioso por hacer, ¡pero al menos ahora tengo una ruta!
Steve