Aide au codage xPathJ'essaie d'apprendre / d'utiliser xPath pour récupérer des éléments de la sortie d'affichage JMP.Pour mon apprentissage, j'ai une sortie bivariée très simple et j'essaie de récupérer la formule de prédiction, directement à partir de la sortie d'affichage.

Le JSL
names default to here(1);
dt = Open("$Sample_Data/big class.jmp");
ow = Bivariate(
Y( :weight ),
X( :height ),
Fit Line( {Line Color( "Medium Dark Green" )} )
);
Le problème:
Je peux facilement récupérer la formule à l'aide de l'appel Display Tree de
zap = report(ow)["Linear Fit"][TextBox(1)] << get text;
Je peux également y accéder en récupérant le texte de la 4e TextBox à partir d'une récupération xPath
zip = (report(ow) << XPath("//TextEditBox"))[4] << get text ;
Mais puisque la valeur de 4 pour l'indice, peut changer si des ajustements supplémentaires sont ajoutés, etc.Je voudrais utiliser xPath pour récupérer la 1ère zone de texte après une zone de contour qui a la valeur "Linear Fit"
L'un de vos experts xPath a-t-il une solution.
ScriptingAide sur le codage Re: xPathVous devriez pouvoir tout faire avec XPath. Le premier exemple vous donne tous les textes. Le deuxième exemple essaie d'utiliser une fonction XPath, mais je ne parviens pas à faire fonctionner la syntaxe.
Names Default to Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
biv = dt << Bivariate( Y( :weight ), X( :height ), Fit Line( 1 ) );
biv rep = biv << Report;
// get all texts in a list
biv rep << XPath( "//TextEditBox//text()" );
// get specific text
target = "=";
biv rep << XPath( "//TextEditBox/[contains(text(),target)]/text()" );
Aide sur le codage Re: xPathAh! Cette syntaxe fonctionne!
biv rep << XPath( "//TextEditBox[contains(text(),\!"=\!")]/text()" );
Aide sur le codage Re: xPathSuper......
Je pense toujours qu'il doit y avoir un moyen de renvoyer la valeur d'un TextEditBox après avoir détecté une OutlineBox spécifique, iereturn la première zone de texte après une Outline Box spécifiée
Aide sur le codage Re: xPathrpt=ow<<REPORT></REPORT>
Aide sur le codage Re: xPathMerci beaucoup!Aide sur le codage Re: xPathVoici quelques autres expressions xpath que j'ai trouvées utiles pour naviguer dans l'arborescence.
// Note: the * in these examples can also be replaced by the class of
// the element you are looking for e.g. TableBox, OutlineBox
rpt = report(ow);
// Gets immediate children of the Outlinebox (ItsTableBox)
rpt << xpath("//OutlineBox[text()='Summary of Fit']/*");
// Gets all descendants of the Outlinebox (TableBox AND all of its ColBoxes)
rpt << xpath("//OutlineBox[text()='Summary of Fit']//*");
// Gets following elements at the same level of the tree
//(Lack of Fit, Analysis of Variances, Parameter Estimates OutlineBoxes)
rpt << xpath("//OutlineBox[text()='Summary of Fit']/following-sibling::*")
// Gets preceding elements at the same level of the tree (TextEditBox with formula)
rpt << xpath("//OutlineBox[text()='Summary of Fit']/preceding-sibling::*")
// Gets ancestors of the box (ListBox, OutlineBox["Linear Fit"], IfBox, OutlineBox["Bivariate Fit..."])
rpt << xpath("//OutlineBox[text()='Summary of Fit']/ancestor::*")Il s'agit de la structure arborescente parcourue dans les exemples.

Cette affiche a encore plus d'exemples https://community.jmp.com/t5/Discovery-Summit-2015/JMP-Discovery-2015-Mining-JMP-Reports-v10-pdf/ta-p/22595
Aide sur le codage Re: xPathVous POUVEZ l'aborder de cette façon, Jim, mais de cette façon subvertit le point du langage XPath. Il est censé faire tout le travail pour vous.