이 그래프 빌더에서 첫 번째 패널의 제목을 얻을 수 없는 이유에 대한 도움이 필요합니다.

이 코드로
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")
그런데 - 요령을 알려주셔서 고맙습니다:
[2]를 통한 직접 인덱싱은 XPath에서 가능합니다. 멋지네요, 감사합니다!!!

단일 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))에서 축 범위의 하드 코딩이 나중에 실행할 때 차트가 모두 엉망이 되기 때문입니다. 그래서 이제 이 코드를 사용하여 패널을 반복하고, 무엇이 있는지 확인한 다음 축 최소값과 최대값을 올바르게 설정할 수 있습니다. 여전히 고통스러운 코딩이 많지만 적어도 이제 경로가 생겼습니다!
스티브