Permalänk
Medlem

Java XPath hjälp

Jag håller på att skriva ett program som med hjälp av XPath letar upp en tag i en XML och sedan tar bort den. Allt funkar fint om jag försöker ta bort en tag på följande sätt:

javax.xml.xpath.XPathExpression expression = xpath.compile("//person[@id='TEST TEST']");

med den där koden så tas taggen där id=TEST TEST bort.

Men vad jag är ute efter att att ha den lite mer dynamisk, att man kan ha en variabel i uttrycket.

javax.xml.xpath.XPathExpression expression = xpath.compile("//person[@id='stringId']");

Där stringId är en String med vad jag letar efter.

Använder följande XML (kanske inte den bäst designade, men men)

<?xml version="1.0" encoding="UTF-8" standalone="no"?> <deltagare> <person id=TEST TEST"> <firstname>Mattias</firstname> <lastname>Lepp</lastname> <address>N/A</address> <phone>100000</phone> </person> <person id="TEST 2"> <firstname>Rickard</firstname> <lastname>Eriksson</lastname> <address>00</address> <phone>00</phone> </person> </deltagare>

Läste någonstans att man kan använda typ $stringId för att kunna använda en variabel. Men allt programmet returnerar är Null.

Hur ska jag gå till väga?

Permalänk
Medlem

I XSL-dokument används mycket riktigt dollartecken för att beteckna variabler. Då du i det här fallet programmerar Java och inte XSL och, antar jag, vill använda en variabel ur din Java-klass, blir uttrycket helt enkelt:

javax.xml.xpath.XPathExpression expression = xpath.compile("//person[@id='" + stringId + "']");

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem

nvm, löste det. Tack