views:

36

answers:

1

Hi, I could not get the following xpath expression to work when the xml path namespace prefix set.

/bk:BookStore/bk:Books/bk:Book[text()='Time Machine']

XML is:

<bk:BookStore xmlns:bk="http://www.bookstore.com/book#"&gt;
<bk:Books>
<bk:Book id="1">Time Machine</bk:Book>
</bk:Books>
</bk:BookStore>

A: 

Without more information about the host language (in which you attempt to evaluate XPath expressions) it is not possible to provide an useful recommendation.

Generally, one needs to "register" a namespace with a namespace manager and this also associates a prefix to the registered namespace. THen, using this NamespaeManager object as an argument to the XPath-evaluation method, one can specify as argument to this method an XPath expression that contains names prefixed by that particular prefix.

Workarounds:

/*/*[name()='bk:Books']/*[name()='bk:Book' and text()='Time Machine']
Dimitre Novatchev