2009-06-17 13 views
5

Ho il seguente XML:Come posso far funzionare i caratteri jolly nella corrispondenza del valore dell'attributo XPath?

<root> 
    <foo> 
    <bar type="a whole bunch of stuff, then a magic string: MUPPET" /> 
    <value>my Muppet value</value> 
    </foo> 
    <foo> 
    <bar type="some other stuff, then a different magic string: GREMLIN" /> 
    <value>my Gremlin value</value> 
    </foo> 
</root> 

Mi piacerebbe costruire una query XPath che restituisce "il mio valore Muppet" (la stringa) dando la stringa "MUPPET" magia. La mia ipotesi era:

/root/foo[contains(bar/@type,'MUPPET')]/value/text() 

ma quello non sembra funzionare. Non sono davvero sicuro se l'operatore contains(x,y) consenta una query come primo parametro. Come problema secondario, non sono sicuro di aver bisogno dello text() alla fine.

Qualsiasi aiuto?

risposta

5

Ho appena controllato con questo valutatori XPATH on-line e si sta lavorando bene:

http://www.mizar.dk/XPath/Default.aspx

+0

Sei completamente corretto; certo! E questo risponde alla mia domanda su/text(), anche. Deve essere un problema con il motore XPath di IBM in Eclipse. Hrm. –

0

Sei sicuro non si dispone di un problema di spazio dei nomi con il XPath?

+0

Non la penso così; Penso che sia un problema con lo strumento di reporting BIRT di IBM, non con la query XPath. Se cambio la query da "./foo[contains(bar/@type,'MUPPET ')]/value/text()" a "." Non ho ancora niente. Certamente "." dovrebbe corrispondere a _qualcosa _... –

Problemi correlati