Kom-pa-TI-bilitet
Java XPath hjälp
Visa signatur
Senast redigerat
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?
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 + "']");
Kom-pa-TI-bilitet
Copyright © 1999–2023 Geeks AB. Allt innehåll tillhör Geeks AB.
Citering är tillåten om källan anges.