Aide au codage XPathJ'essaie d'apprendre/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 en utilisant 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 4ème TextBox à partir d'une récupération xPath
zip = (report(ow) << XPath("//TextEditBox"))[4] << get text ;
Mais comme 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 "Ajustement linéaire"
L'un de vous, experts xPath, a-t-il une solution.
Automatisation et scriptsExploration et visualisation des donnéesIngénierie Qualité et ProcédésRe : Aide au codage XPathVous POUVEZ l'aborder de cette façon, Jim, mais cette façon renverse l'intérêt du langage XPath. Il est censé faire tout le travail à votre place.
Re : Aide au codage 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
Re : Aide au codage XPathMerci beaucoup!Re : Aide au codage XPathrpt=ow<<REPORT></REPORT>
Re : Aide au codage XPathSuper......
Je pense toujours qu'il doit y avoir un moyen de renvoyer la valeur d'un TextEditBox après avoir détecté un OutlineBox spécifique, c'est-à-dire renvoyer la première zone de texte après une Outline Box spécifiée.
Re : Aide au codage XPathAh ! Cette syntaxe fonctionne !
biv rep << XPath( "//TextEditBox[contains(text(),\!"=\!")]/text()" );
Re : Aide au codage XPathVous devriez pouvoir tout faire avec XPath. Le premier exemple vous donne tous les textes. Le deuxième exemple tente d'utiliser une fonction XPath, mais je n'arrive 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()" );