|
Subject: Re: Do you know how to refer to a node? From: Steve Tinney <stinney@xxxxxxxxxxxxx> Date: Sun, 19 Dec 1999 21:00:16 -0500 |
Sorry, I realized later that you were not in the node-and-text
problem camp, but that you wanted to rename the nodes according
to a fixed sequence. Here is a neat way of doing that,
exploiting the fact that document('') refers to the stylesheet
document.
Steve
<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:strip-space elements="nodes"/>
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="customer">
<xsl:copy>
<xsl:for-each select="*">
<xsl:variable name="index" select="position()"/>
<xsl:element name="{document('')//field[$index]}">
<xsl:value-of select="normalize-space(.)"/>
</xsl:element>
</xsl:for-each>
</xsl:copy>
</xsl:template>
<xsl:template name="fieldnames">
<field>street</field>
<field>city</field>
<field>state</field>
</xsl:template>
</xsl:stylesheet>
produces:
<?xml version="1.0" encoding="utf-8"?>
<customer><street>1 Main
Street</street><city>Pittsburgh</city><state>PA</state></customer>
from:
<customer>
<node>1 Main Street</node>
<node>Pittsburgh</node>
<node>PA</node>
</customer>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: Do you know how to refer to a n, Steve Tinney | Thread | RE: Do you know how to refer to a n, Jonathan Asbell |
| Re: Do you know how to refer to a n, Steve Tinney | Date | paths starting with "//" are invari, Mark D. Anderson |
| Month |