[ https://issues.apache.org/activemq/browse/CAMEL-3155?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=62109#action_62109 ]
Claus Ibsen edited comment on CAMEL-3155 at 9/26/10 1:36 AM: ------------------------------------------------------------- And no I could not find a solution with the XPath API to let it be aware of the default namesapce. There seems to be no good hooks for such kind. Even if I added what may be a default namespace to the NamespaceContext the xpath would still fail. The only solution I could get working is to use namespace prefixes in the xpath expressions. And the XPathExpression does not offer any callbacks or hooks to influence the compiling. And I bet doing a string based manipulation of the given String for the namespace is hard because people can use a lot of different combinations. So if you have a simple expression like {code} /foo/bar {code} Then it may be possible to manipulate it beforehand and do {code} /c:foo/c:bar {code} And register c as a namespace with the uri from the XML message. But when the xpath expression becomes more complex, its much harder. So I wonder there must be better ways that this? was (Author: davsclaus): And no I could not find a solution with the XPath API to let it be aware of the default namesapce. There seems to be no good hooks for such kind. Even if I added what may be a default namespace to the NamespaceContext the xpath would still fail. The only solution I could get working is to use namespace prefixes in the xpath expressions. And the XPathExpression does not offer any callbacks or hooks to influence the compiling. And I bet doing a string based manipulation of the given String for the namespace is hard because people can use a lot of different combinations. So if you have a simple expression like {code} /foo/bar {code} Then it may be possible to manipulate it beforehand and do {code} /c:foo/c:/bar {code} And register c as a namespace with the uri from the XML message. But when the xpath expression becomes more complex, its much harder. So I wonder there must be better ways that this? > Default namespace not handled by .when(xpath(string)) > ----------------------------------------------------- > > Key: CAMEL-3155 > URL: https://issues.apache.org/activemq/browse/CAMEL-3155 > Project: Apache Camel > Issue Type: Improvement > Components: camel-core > Affects Versions: 2.4.0 > Environment: Apache Maven 3.0-alpha-5 (r883378; 2009-11-23 > 07:53:41-0800) > Java version: 1.6.0_17 > Java home: C:\Program Files\Java\jdk1.6.0_17\jre > Default locale: en_US, platform encoding: Cp1252 > OS name: "windows 7" version: "6.1" arch: "x86" Family: "windows" > Reporter: Malachi de AElfweald > Assignee: Claus Ibsen > Priority: Minor > Original Estimate: 2 hours > Remaining Estimate: 2 hours > > If I do a .choice().when(xpath("//rootnode")) it fails to find any matches > unless I preprocess and remove the xmlns="blah" (autogenerated by JAXB on the > other end) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.