DarkW1nter
DarkW1nter

Reputation: 2851

xpath to return value from xml doc

I'm wondering if there is a way to do the following with one xpath expression: I have an XML doc similar to this but with many 'results',

<result>
    <id>1</id>
    <name>joe</name>
</result>
<result>
    <id>2</id>
    <name>jim</name>
</result>

I'm passing a variable into a C# utility along with the xml, and want to return the name where the id = the variable. I could loop through the xml until reach what I'm after but if there's a handy xpath way to do it I'm listening... thanks

Upvotes: 0

Views: 66

Answers (1)

zfrank
zfrank

Reputation: 456

Assuming you have a root element in there like "results" that XPath can validate, and that you don't have any other nodes named "result"...

//result[id=1]/name

Or you could get the text outright, instead of it being returned in a node

//result[id=1]/name/text()

And if you want to make sure that there's only one result, you could surround it with parens and put a [1] after

(//result[id=1]/name/text())[1]

I would also recommend testing with one of the xpath test sites out there like this one, but beware that different xpath/xml parsers sometimes behave differently.

Upvotes: 2

Related Questions