Hi, everyone!

At work, I'm having problems to run a XPath using the selectNodeList() method from Xalan. The XPath I want to execute is:

//pam:message//prism:coverDate

The error message I have is: The prefix 'pam' is not declared.
expression = '//pam:message//prism:startingPage' Remaining tokens are: ('/' '/').

I have searched on the Internet and I think that I should make the XPathEvaluator recognize that namespace. My problem is: I don't know how to do that.

If someone can show me what to do, I will appreciate it.

Recommended Answers

All 5 Replies

Is this c++ ??? Never heard of XPath.

Try the XML section.

I'm sorry, I'm using Xalan in C++ and I'm looking for a solution.

Add the pam namspace declaration in where the prism namespace is declared.

I found a solution for my problem. I designed a class that derivates from PrefixResolver, a class that solves prefixes and namespaces. All I needed to do is to implement some methods, like setAPrefixAndAUri, getPrefix and getURI. I passed a PrefixResolver object to the XPathEvaluator with the correct prefix/uri pairs and the XPathEvaluator can recognize the prefix. I'm happy, now!

Thanks for your attention!

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.