Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

bug in processing XPATH with this simple regular expression?

Posted on 2013-06-16
13
Medium Priority
?
367 Views
Last Modified: 2013-06-24
Take this input:
<div id="ps-content">foobar</div>

and apply this XPATH 2+:
//div[matches(@id,"^s-content$")]

I tried with BaseX and it matched!  despite the fact that "^" in regex language means "the start of the string".

Why does it match?
0
Comment
Question by:lucavilla
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 7
  • 5
13 Comments
 
LVL 60

Expert Comment

by:Geert Bormans
ID: 39251883
I can't answer why it matches

I can confirm it should not match
and using Saxon, it rightfully does not match

I suggest you report it to BaseX as a bug to look into, because a bug it is
0
 

Author Comment

by:lucavilla
ID: 39252297
Thanks for testing it with Saxon!

I now also tested it with Xidel too and it correctly doesn't match,  while it matches if I add the "p".

Do you know where is the right place to report the bug?
0
 
LVL 60

Expert Comment

by:Geert Bormans
ID: 39252303
I did not find any bugtracker tool on the site
(I was at an XML conference this weekend in London and actually was surprised not to meet any of the basex guys there, I could have asked)
anyway, you could try baseX talk
basex-talk(at)mailman.uni-konstanz(dot)de.
0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 

Author Comment

by:lucavilla
ID: 39254450
Done, I reported the bug to that email (mailing list): https://mailman.uni-konstanz.de/pipermail/basex-talk/2013-June/005241.html

Let's see what they say...

PS: wow, an XML conference, interesting!
0
 
LVL 60

Expert Comment

by:Geert Bormans
ID: 39254526
yeah, well actually it was pretty interesting

http://xmllondon.com/
a whole weekend, me and the other nerds :-)
0
 

Author Comment

by:lucavilla
ID: 39254574
I read the program at http://xmllondon.com/programme.jsp
Really interesting!
Too bad that I'm so far... being in Italy...
0
 

Accepted Solution

by:
lucavilla earned 0 total points
ID: 39268339
Solved.
The cause turned out to be Windows (7) command-line related.
If I put the XPATH in a file it works correctly!
0
 

Author Comment

by:lucavilla
ID: 39269026
I've requested that this question be closed as follows:

Accepted answer: 0 points for lucavilla's comment #a39268339

for the following reason:

Solution found by experimenting
0
 
LVL 60

Expert Comment

by:Geert Bormans
ID: 39269027
If you want to accept your own answer (a bit inappropriate here actually) make sure it contains a solution. 'win 7 command-line related' is too vague.

Note I confirmed it is a bug and it should not return values, that on its own is an acceptable reassurance

What did baseX reply? What exactly is the command-line related issue? How can your accepted answer help others that run in the same issue?
If you pasted the XPath in a file and it works ... it still could be a baseX issue, them doing the wrong thing with windows command lines. Still they should look into it. I can imagine that they parse out the command line the wrong way
0
 

Assisted Solution

by:lucavilla
lucavilla earned 0 total points
ID: 39269439
According to Microsoft about NT command shell:
" all reserved shell characters not in double quotes must be escaped. These characters have special meaning to the Windows NT command shell. The reserved shell characters are:
& | ( ) < > ^
To pass reserved shell characters as part of an argument for a command, either the entire argument must be enclosed in double quotes, or the reserved character must be escaped. Prefix a reserved character with a carat (^) character to escape it."

In the command-line that I tried it likely ignored the "^" in the regular expression considering it just an escape character of the following character. This is why it always matched no matter where I put that "^".
0
 
LVL 60

Expert Comment

by:Geert Bormans
ID: 39269667
did you try adding '^^' instead of '^', should work if I read this
0
 

Author Comment

by:lucavilla
ID: 39269717
yes and it worked but it was becoming too difficult to consider the various special characters in a XPATH to escape them automatically.
Added to the possibility to reach the command-line length limit, I preferred to avoid the problem :)
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

I was working on a PowerPoint add-in the other day and a client asked me "can you implement a feature which processes a chart when it's pasted into a slide from another deck?". It got me wondering how to hook into built-in ribbon events in Office.
Many times as a report developer I've been asked to display normalized data such as three rows with values Jack, Joe, and Bob as a single comma-separated string such as 'Jack, Joe, Bob', and vice versa.  Here's how to do it. 
This course is ideal for IT System Administrators working with VMware vSphere and its associated products in their company infrastructure. This course teaches you how to install and maintain this virtualization technology to store data, prevent vuln…
In response to a need for security and privacy, and to continue fostering an environment members can turn to for support, solutions, and education, Experts Exchange has created anonymous question capabilities. This new feature is available to our Pr…

609 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question