xsl-list
[Top] [All Lists]

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

2017-11-03 13:42:10
How about this: //value[matches(., '[^\\],')]

Bob Thomas


On Fri, Nov 3, 2017 at 12:13 PM, Costello, Roger L. 
costello(_at_)mitre(_dot_)org <
xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> 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(_dot_)honnen(_at_)gmx(_dot_)de 
[mailto:xsl-list-service@
lists.mulberrytech.com]

Sent: Friday, November 3, 2017 2:09 PM

To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com

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



On 03.11.2017 19:03, Costello, Roger L. costello(_at_)mitre(_dot_)org 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(_dot_)thomas(_at_)tagsmiths(_dot_)com) or 
Skype
Time zone: Mountain (GMT-7)
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--
<Prev in Thread] Current Thread [Next in Thread>