このグラフビルダーの最初のパネルのタイトルを取得できない理由について助けが必要です

このコードで
report=current report();
test=(report<< XPath("(//OutlineBox[text()='Graph Builder']//GraphBuilderGroupBox)[2]"))<<GET title=""></GET>Thanks for any suggestions!
Steve
ああ、興味深いですね。今まで気づかなかったし、気にもしていませんでした。
いくつかのXpathパーサーでは、ノードのコンテンツがすでに取得されている。
https://www.w3schools.com/xml/xpath_examples.asp
http://xpather.com/
例えば、結果を貼り付けた後
xml= current report() << Get XML;
http://xpather.com/にアクセスして検索すると
(//OutlineBox[text()='Graph Builder']//GraphBuilderGroupBox)[2]
結果は「年齢 = 13」です。

JMPなど
https://www.freeformatter.com/xpath-tester.html
https://magictool.ai/tool/xpath-tester/de/
http://xpather.com/ (設定: ノード)
周囲の「オブジェクト」を返します。
したがって、別の手順でノードのコンテンツを取得する必要があります...
これよりも簡単な方法があると思います...
誰かが投稿するまでは、
report=current report();
test=(report<< XPath("(//OutlineBox[text()='Graph Builder']//GraphBuilderGroupBox)[2]"))[1];
xml= test << Get XML;
Regex (xml, ">(.*?)<\/GraphBuilderGroupBox>", "\1")
ところで、このトリックをありがとう:
XPathでは[2]による直接インデックス作成が可能です。素晴らしいですね、ありがとうございます!!!

単一のGraphBuilderGroupBoxのXMLを確認すると、XMLから値を探していることがわかります。
"<GRAPHBUILDERGROUPBOX width="\!" 570="">age = 12</GRAPHBUILDERGROUPBOX>"
そして、その値はXPathを使って取得できる。
gbb_texts = (Report(gb) << XPath("(//GraphBuilderGroupBox/text())"));<BR />// {"age = 12", "age = 13", "age = 14", "age = 15", "age = 16", "age = 17"}
そして、最初のものだけを取得したい場合は、XPath にすでにあるインデックスを制限し (行ったように)、そこから最初のインデックスを取得します。<< XPath はリストを返します (この場合、JMP のインデックスを使用する必要があるため、XPath インデックスをスキップする可能性が高いです)
gbb_text = (Report(gb) << XPath("((//GraphBuilderGroupBox/text()))[1]"))[1];<BR />// or gbb_text = (Report(gb) << XPath("(//GraphBuilderGroupBox)[1]/text()"))[1];
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"}
やったー!
@hogiと@jthiに感謝します。いつものように、迅速かつ素晴らしいサポートでした。
質問の理由は、異なるパネルに異なる軸設定が必要でしたが、パネルの数によって軸範囲が変わるため、Graph Builder が作成する保存されたスクリプト (例: Scalebox(2)) からのハードコーディングによって、後で実行したときにチャートが台無しになってしまうからです。そのため、このコードを使用してパネルをループし、そこに何があるかを確認し、軸の最小値と最大値を正しく設定できるようになりました。まだ大変なコーディングが残っていますが、少なくとも今は道筋があります。
スティーブ