Get the title from a Graph Builder PanelI could use some help on why I can't get the title of the 1st panel in this Graph builder

with this code
report=current report();
test=(report<< XPath("(//OutlineBox[text()='Graph Builder']//GraphBuilderGroupBox)[2]"))<<GET title=""></GET>Thanks for any suggestions!
Steve
Automation and ScriptingRe: Get the title from a Graph Builder PanelAh, interesting. I never noticed - or cared:
With some Xpath Parsers, one already gets the content of the node
https://www.w3schools.com/xml/xpath_examples.asp
http://xpather.com/
E.g. after pasting the result of
xml= current report() << Get XML;
into http://xpather.com/ and searching for
(//OutlineBox[text()='Graph Builder']//GraphBuilderGroupBox)[2]
one gets: "age = 13"

JMP and others
https://www.freeformatter.com/xpath-tester.html
https://magictool.ai/tool/xpath-tester/de/
http://xpather.com/ (setting: node)
return the surrounding "object".
So, one has to retrieve the content of the node in a separate step ...
I guess there is an easier way than this one ...
Till somebody posts it, you can use
report=current report();
test=(report<< XPath("(//OutlineBox[text()='Graph Builder']//GraphBuilderGroupBox)[2]"))[1];
xml= test << Get XML;
Regex (xml, ">(.*?)<\/GraphBuilderGroupBox>", "\1")
by the way - thank you for the trick:
direct indexing via [2] is possible in XPath - cool, thanks!!!

Re: Get the title from a Graph Builder PanelIf you check the XML for single GraphBuilderGroupBox you can see that you are looking for the value from XML
"<GRAPHBUILDERGROUPBOX width="\!" 570="">age = 12</GRAPHBUILDERGROUPBOX>"
And you can get that value using XPath
gbb_texts = (Report(gb) << XPath("(//GraphBuilderGroupBox/text())"));<BR />// {"age = 12", "age = 13", "age = 14", "age = 15", "age = 16", "age = 17"}
And if you just want to get the first one, you can limit the index already in XPath (like you have done) and then take first index from that as << XPath will return a list (I would most likely skip XPath index in this case, as you still have to use JMP's index)
gbb_text = (Report(gb) << XPath("((//GraphBuilderGroupBox/text()))[1]"))[1];<BR />// or gbb_text = (Report(gb) << XPath("(//GraphBuilderGroupBox)[1]/text()"))[1];
with just JMP index
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: Get the title from a Graph Builder PanelWoot woot!
Thanks @hogi and @jthi ! As usual, fast and amazing help.
The reason for the ask was that I need to have different axis settings for different panels but since the # of panels change the hard coding of the axis range from the saved script Graph Builder makes (e.g. Scalebox(2)) causes the charts to be all messed up on later times when I run it. So I can now use this code to loop through the panels, check what is there, and then set the axis min and max correctly. Still a lot of painful coding to do but at least now I have a path!
Steve