xsl-list
[Top] [All Lists]

Re: [xsl] XPath to retrieve the content of each fake comment in an element?

2021-02-19 14:19:36
On 19.02.2021 21:17, Roger L Costello costello(_at_)mitre(_dot_)org wrote:
Hi Folks,

Consider this element:

<style>
    blah, blah
    <![CDATA[
       <!--
           a,b,c
       -->
   ]]>
   foo, foo
    <![CDATA[
       <!--
           d,e,f
       -->
   ]]>
</style>

The content of the <style> element is this string:

       blah, blah
       <!--
           a,b,c
       -->
       foo, foo
       <!--
           d,e,f
       -->

Notice that it appears there are two comments, but they are not, they are "fake 
comments".

I want to get just the content inside the fake comments:

          a,b,c
          d,e,f

The following XPath expression seems to give the desired results:

for $i in tokenize(., '<!--') return if (contains($i, '-->')) then 
substring-before($i, '-->') else ()

Is there a better XPath expression -- simpler, more precise, more complete?

XPath 3.1
  style/parse-xml-fragment(.)/comment()/data()
--~----------------------------------------------------------------
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>