Re: [xsl] Need an XPath expression which checks that all commas are escaped

Subject: Re: [xsl] Need an XPath expression which checks that all commas are escaped
From: "Bob Thomas bob.thomas@xxxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Fri, 3 Nov 2017 18:42:05 -0000
How about this: //value[matches(., '[^\\],')]

Bob Thomas


On Fri, Nov 3, 2017 at 12:13 PM, Costello, Roger L. costello@xxxxxxxxx <
xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:

> Martin wrote:
>
>
>
> Shouldn't the check rather be
>
>    every $token in tokenize(., ',')[position() lt last()] satisfies
> ends-with($token, '\')
>
>
>
> Ah!
>
>
>
> You are right!
>
>
>
> Thanks Martin.
>
>
>
> /Roger
>
>
>
> -----Original Message-----
>
> From: Martin Honnen martin.honnen@xxxxxx [mailto:xsl-list-service@
> lists.mulberrytech.com]
>
> Sent: Friday, November 3, 2017 2:09 PM
>
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
>
> Subject: Re: [xsl] Need an XPath expression which checks that all commas
> are escaped
>
>
>
> On 03.11.2017 19:03, Costello, Roger L. costello@xxxxxxxxx wrote:
>
>
>
> > I need an XPath 2.0 expression for this:
>
> >
>
> >       Check that each comma in the <value>
>
> >       element is escaped with a backslash.
>
>
>
> Do you want that expression to return a boolean value of true or false?
>
>
>
> > Examples:
>
> >
>
> > This is good:
>
> >
>
> > <value>A\, B</value>
>
> >
>
> > This is bad:
>
> >
>
> > <value>A, B</value>
>
> >
>
> > This is also bad, because one comma is escaped but the other is not:
>
> >
>
> > <value>A\, B, C</value>
>
> >
>
> > I created an XPath expression to see if the text is good:
>
> >
>
> > tokenize(text(), ',')[position() lt last()][ends-with(., '\')]
>
> >
>
> > I think that is correct. Is there a simpler XPath expression to solve
> this?
>
>
>
> Shouldn't the check rather be
>
>    every $token in tokenize(., ',')[position() lt last()] satisfies
> ends-with($token, '\') ?
>
>
>
> 
>



-- 
Bob Thomas
+1 720 201 8260
Skype: bob.thomas.colorado
Instant messaging: Gmail chat (bob.thomas@xxxxxxxxxxxxx) or Skype
Time zone: Mountain (GMT-7)

Current Thread