RE: [xsl] Techniques for transforming content like

Subject: RE: [xsl] Techniques for transforming content like
From: cknell@xxxxxxxxxx
Date: Thu, 24 Jul 2003 14:14:42 -0400
This stylesheet will produce the transformation you asked for.
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
  <xsl:output method="xml" indent="yes" encoding="UTF-8" />
  <xsl:template match="/">
    <xsl:apply-templates />
  </xsl:template>

  <xsl:template match="other">
    <other>
      <xsl:apply-templates select="key" />
      <xsl:apply-templates select="value" />
    </other>
  </xsl:template>

  <xsl:template match="key">
    <key>
      <xsl:value-of select="." />_<xsl:value-of select="name(../value/node()[position() = 1])" />
    </key>
  </xsl:template>

  <xsl:template match="value">
    <value>
      <xsl:value-of select="./userid" />
    </value>
  </xsl:template>
</xsl:stylesheet>
-- 
Charles Knell
cknell@xxxxxxxxxx - email



-----Original Message-----
From:     "Karr, David" <David.Karr@xxxxxxxx>
Sent:     Thu, 24 Jul 2003 10:26:43 -0700
To:       xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject:  [xsl] Techniques for transforming content like"<tag>content</tag>" to "<tag>content</tag>"

I have a requirement to write XSLT transformers for XML documents, some
of whose element contents can consist of "encoded" XML, like this:

<other>
 <key>stuff</key>
 <value><userid>98765</userid></value>
</other>

We need to transform this to this:

<other>
 <key>stuff_userid</key>
 <value>98765</value>
</other>

There's no avoiding that this will be messy, so I'm only aiming to clean
up the worst part of this process: how I parse the "encoded" XML.  A POC
for this is just using "substring-after" and "substring-before" to set
the pieces into variables.  Is there a better way to parse content like
this?


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list




 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread