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: "Lizzi, Vincent vincent.lizzi@xxxxxxxxxxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Fri, 3 Nov 2017 19:45:43 -0000
Roger,


The first solution I came up with is essentially what you had to begin with.


(
    <value>A\, B</value>,
    <value>A, B</value>,
    <value>A\, B, C</value>
) !
not(tokenize(text(),',')[position() ne last()][not(ends-with(.,'\'))])


Produces:


true false false


This regex is more concise and produces the same result:


not(matches(text(),'(?:[^\\]),'))


Cheers,

Vincent

________________________________
From: Dimitre Novatchev dnovatchev@xxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Sent: Friday, November 3, 2017 3:11:27 PM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: [xsl] Need an XPath expression which checks that all commas are
escaped

not(contains(replace(., '\\,', ''), ','))



On Fri, Nov 3, 2017 at 11:02 AM, Costello, Roger L. costello@xxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
> Hi Folks,
>
> I need an XPath 2.0 expression for this:
>
> Check that each comma in the <value>
> element is escaped with a backslash.
>
> 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?
>
> /Roger
>



--
Cheers,
Dimitre Novatchev
---------------------------------------
Truly great madness cannot be achieved without significant intelligence.
---------------------------------------
To invent, you need a good imagination and a pile of junk
-------------------------------------
Never fight an inanimate object
-------------------------------------
To avoid situations in which you might make mistakes may be the
biggest mistake of all
------------------------------------
Quality means doing it right when no one is looking.
-------------------------------------
You've achieved success in your field when you don't know whether what
you're doing is work or play
-------------------------------------
To achieve the impossible dream, try going to sleep.
-------------------------------------
Facts do not cease to exist because they are ignored.
-------------------------------------
Typing monkeys will write all Shakespeare's works in 200yrs.Will they
write all patents, too? :)
-------------------------------------
Sanity is madness put to good use.
-------------------------------------
I finally figured out the only reason to be alive is to enjoy it.

Current Thread