You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Alexandre GIGLEUX (JIRA)" <ji...@apache.org> on 2010/02/25 17:00:28 UTC
[jira] Created: (JXPATH-145) Problem Setting Value to an XPath
containing a "+" in the XPATH Name
Problem Setting Value to an XPath containing a "+" in the XPATH Name
--------------------------------------------------------------------
Key: JXPATH-145
URL: https://issues.apache.org/jira/browse/JXPATH-145
Project: Commons JXPath
Issue Type: Bug
Affects Versions: 1.3
Reporter: Alexandre GIGLEUX
Hi,
Here is the code which fail into Exception:
{code}
Trade trade = new Trade();
JXPathContext ctx = JXPathContext.newContext(trade);
ctx.setValue("keywords", new Hashtable());
ctx.setValue("keywords/ExternalSystem", "TEST");
ctx.setValue("keywords/A+Rate", "1.2");
{code}
When I try to set the value of "keywords/A+Rate" I get the Exception:
Exception in thread "main" org.apache.commons.jxpath.JXPathException: Exception trying to set value with xpath keywords/A+Rate; Cannot set value for xpath: keywords/A+Rate
When I change the "A+Rate" to "A-Rate". It's OK.
Is it a bug or a special feature of XPath ?
Thanks
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (JXPATH-145) Problem Setting Value to an XPath
containing a "+" in the XPATH Name
Posted by "A. Bargull (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JXPATH-145?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12883000#action_12883000 ]
A. Bargull commented on JXPATH-145:
-----------------------------------
> Is it a bug or a special feature of XPath ?
It isn't a bug. Only "-" is a valid NameChar [1], so "+" must not appear in valid xml element names [2]. That means your expression "keywords/A+Rate" is treated as "keywords/A + Rate", so as an additive expression [3]. Also see the note on [4]:
---
NOTE: Since XML allows - in names, the - operator typically needs to be preceded by whitespace. For example, foo-bar evaluates to a node-set containing the child elements named foo-bar; foo - bar evaluates to the difference of the result of converting the string-value of the first foo child element to a number and the result of converting the string-value of the first bar child to a number.
---
[1] http://www.w3.org/TR/REC-xml/#NT-NameChar
[2] http://www.w3.org/TR/REC-xml-names/#NT-NCName
[3] http://www.w3.org/TR/xpath/#NT-AdditiveExpr
[4] http://www.w3.org/TR/xpath/#numbers
> Problem Setting Value to an XPath containing a "+" in the XPATH Name
> --------------------------------------------------------------------
>
> Key: JXPATH-145
> URL: https://issues.apache.org/jira/browse/JXPATH-145
> Project: Commons JXPath
> Issue Type: Bug
> Affects Versions: 1.3
> Reporter: Alexandre GIGLEUX
>
> Hi,
> Here is the code which fail into Exception:
> {code}
> Trade trade = new Trade();
> JXPathContext ctx = JXPathContext.newContext(trade);
> ctx.setValue("keywords", new Hashtable());
> ctx.setValue("keywords/ExternalSystem", "TEST");
> ctx.setValue("keywords/A+Rate", "1.2");
> {code}
> When I try to set the value of "keywords/A+Rate" I get the Exception:
> Exception in thread "main" org.apache.commons.jxpath.JXPathException: Exception trying to set value with xpath keywords/A+Rate; Cannot set value for xpath: keywords/A+Rate
> When I change the "A+Rate" to "A-Rate". It's OK.
> Is it a bug or a special feature of XPath ?
> Thanks
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.