xsl-list
[Top] [All Lists]

[xsl] Converting SSI variables to XML

2006-09-11 08:30:32
Hi all, I wish to turn the following CDATA input:

<xml>

   <![CDATA[

<!--#set var="t.news.1.title" value="This is the title"-->
<!--#set var="t.news.1.image_small" value="smallimage"-->
<!--#set var="t.news.1.image_large" value="largeimage"-->

<!--#set var="t.news.2.title" value=""-->
<!--#set var="t.news.2.image_small" value=""-->
<!--#set var="t.news.2.image_large" value=""-->

<!--#set var="t.news.3.title" value=""-->
<!--#set var="t.news.3.image_small" value=""-->
<!--#set var="t.news.3.image_large" value=""-->


]]>
   </xml>


Into XML as follows using XSLT 2:

<ts>
 <group num="1">
  <var name="t.news.1.title" value="This is the title"/>
  <var name="t.news.1.image_small" value="smallimage"/>
  <var name="t.news.1.image_large" value="largeimage"/>
 </group>
 <group num="2">
  etc.....
 </group>
</ts>

I have used the analyze-string function to do a regex match on the HTML comments, it then extracts the values of 'var' and 'value' to create:

<ts>

  <var name="t.news.1.title" value="This is the title"/>
  <var name="t.news.1.image_small" value="smallimage"/>
  <var name="t.news.1.image_large" value="largeimage"/>


  etc.....

</ts>

To add the grouping I will need to do another pass over this data however I am finding it complex to extract the numerical data from the string at @name and it seems unnecessary complex. I have also tried nesting xsl:analyze-string elements to create a group first then the individual variables. Can anyone recommend the correct way to do this?

Thanks in advance

Tom

_________________________________________________________________
Download the new Windows Live Toolbar, including Desktop search! http://toolbar.live.com/?mkt=en-gb


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>