2016-04-28 4 views
1

Wenn ich liefern konstant "1" in rollnumber[1]Wie werden Variablen in Velocity XPath-Ausdrücken verwendet?

/root/person/rollnumber[1] 

XPath wertet in Ordnung.

Doch statt einer konstanten, möchte ich einige variable

/root/person/rollnumber[$i] 

bereitzustellen, wo $i jede ganze Zahl sein kann.

Dieser XPath-Ausdruck funktioniert nicht.

+0

Wie/Wo haben Sie den Wert von $ i gesetzt? – har07

+0

Ich schreibe diesen XPath in Geschwindigkeit tempalte. so, ich kann es eingestellt #set ($ i = 1) – ankit

+0

Da 'I' $ ist eine Geschwindigkeits Vorlage der Variablen, ich vermute stark, diese Geschwindigkeit spezifische Frage. XPath 1.0 selbst hat keine Vorstellung von '$' Variable – har07

Antwort

0

Der übliche Trick besteht darin, den XPath mithilfe von Zeichenfolgenformatierung oder Verkettung in der Umgebung der Hostsprache zu erstellen.

Versuchen Sie dies in Geschwindigkeit:

#set($xp = "/root/person/rollnumber[${i}]") 

Dann $xp anstelle der Zeichenkette verwenden in Ihrem XPath Anruf.

Siehe auch How to pass parameter into XPath expression in Xpath 1.0, wie Sie dies in anderen Hosting-Sprachen tun können.

Verwandte Themen