XPath to retrieve the content of each fake comment in an element?

"Roger L Costello [email protected]" <[email protected]> Fri, 19 Feb 2021 20:16:59 -0000
Newsgroups gmane.text.xml.xsl.general.mulberrytech
Message-ID <[email protected]>
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?

/Roger
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/3329386
or by email: [email protected]
--~--