我可以使用一些幫助來了解為什麼我無法在此圖形生成器中獲得第一個面板的標題

用這個程式碼
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 將返回一個列表(我很可能會跳過此中的XPath 索引)情況,因為您仍必須使用 JMP 的索引)
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 !像往常一樣,快速而驚人的幫助。
提出這個問題的原因是我需要為不同的面板設置不同的軸設置,但由於面板的數量更改了圖形生成器保存的腳本中軸範圍的硬編碼(例如 Scalebox(2)),導致圖表當我運行當它時,一切都搞砸了。因此,我現在可以使用此程式碼循環遍歷面板,檢查其中有什麼,然後正確設定軸最小值和最大值。還有很多痛苦的編碼要做,但至少現在我有了一條路!
史蒂夫