Ah, no. My message got "corrupted" inadvertently, so my problem came
out somewhat unclear. The problem is that the contents of the "value"
element is not "<userid>98765</userid>", but the same string with the
XML-significant characters escaped to their character entities.
When I view the notes in the list, I see that my original note seems to
convey that, but in your response, the part that quotes my original note
seems to have "unescaped" that piece of the XML content.
-----Original Message-----
From: cknell(_at_)onebox(_dot_)com [mailto:cknell(_at_)onebox(_dot_)com]
Sent: Thursday, July 24, 2003 11:15 AM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: RE: [xsl] Techniques for transforming content like
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(_at_)onebox(_dot_)com - email
-----Original Message-----
From: "Karr, David" <David(_dot_)Karr(_at_)wamu(_dot_)net>
Sent: Thu, 24 Jul 2003 10:26:43 -0700
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
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
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list