xsl-list
[Top] [All Lists]

Re: [xsl] tokenize a string with escaped spaces

2020-04-03 18:38:38
Try using xsl:analyze-string with a regex of

\S*('[^']*')?("[^"]*")?

I've had to guess at your specification from your single example, but you 
should be able to adapt it if the spec is different.

You could also extend the regex to pick up the keyword (before '=') and value 
(after '=') as captured substrings:

(\S+)=(\S+|('[^']*')|("[^"]*"))

and then regex-group(1) gives you the keyword, and regex-group(2) the value.

Michael Kay
Saxonica

On 4 Apr 2020, at 00:17, Mark Giffin m1879(_at_)earthlink(_dot_)net 
<xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> wrote:

I am tokenizing an XML attribute that has info I need in it. Example:

myattr="ng-model=mymodel ng-show-mymodel=='Radio button 1'"

So I want to tokenize into these two values:

ng-model=mymodel
ng-show='Radio button 1'

Using white space like tokenize($attr, '\s') gives me this, not what I want:

ng-model=mymodel
ng-show='Radio
button
1'

Do you have a suggestion on how to do this? Doesn't have to use tokenize().

Thanks,
Mark

--~----------------------------------------------------------------
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>