2016-05-19 2 views
2

Mit VTD-XML ist es möglich, die folgende XPath-Anweisung auszuführen?VTD-XML: XPath-Anweisung - if (10> 5) dann "yes" sonst "no"

if(10 > 5) then "yes" else "no"`

Ich habe eine viel komplexere Aussage, aber es wird nicht mit meinem aktuellen Setup laufen. Es sind diese Methoden möglich: evalXPathToBoolean(), evalXPathToNumber() und evalXpathToString(). Aber ich erhalte diese Störung, wenn auszuführen versuchen:

com.ximpleware.extended.XPathParseExceptionHuge: XPath Syntax error: #8

autoPilot.selectXPath(xpath) // does not like this 
while((i=autoPilot.evalXPath())!=-1){   
list.add(vtdNav.toString(i)); 
} 

Dies gilt XPath und arbeitet in XMLSpy. Ist dies mit VTD-XML möglich? Bitte beraten.

+0

Bitte beachten Sie, dass ich EvalXPathToBoolean() verwenden könnte, um wahr oder falsch zurückzugeben, aber die bedingte Logik ist viel komplexer und schließlich muss eine Zeichenfolge basierend auf einer anderen XPath-Anweisung zurückgegeben werden ausgeführt werden. – vScanger

Antwort

0

VTD-XML unterstützt den vollständigen Satz von XPath 1.0. Die Syntax, auf die Sie angespielt haben, ist wahrscheinlich die XPath 2.0-Syntax ..., die zu diesem Zeitpunkt von VTD-XML nicht unterstützt wird.

Die Lösung/Umgehung besteht darin, Ihre Bedingungsanweisung zu nehmen und in Ihre Anwendungslogik zu codieren und nur VTD-XML XPath-Boolesche/Zahlenauswertungsfunktion zu verwenden, um die Werte zu erhalten, die Sie dann in Ihre Bedingungslogik einfügen können ...

Verwandte Themen