I think, the following XSLT transform may work for this problem description:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="2.0">
<xsl:output method="xml" indent="yes" />
<xsl:variable name="confDoc" select="document('config.xml')" />
<xsl:template match="node() | @*">
<xsl:copy>
<xsl:apply-templates select="node() | @*" />
</xsl:copy>
</xsl:template>
<xsl:template match="element/*">
<xsl:variable name="replc" select="$confDoc/config/element[(_at_)name =
current()/../@name]/*[local-name() = local-name(current())]" />
<xsl:copy-of select="if ($replc) then $replc else ." />
</xsl:template>
</xsl:stylesheet>
On Sat, Apr 3, 2010 at 12:45 AM, Suresh
<suresh(_dot_)chinta(_at_)gmail(_dot_)com> wrote:
I have an xml config file whose nodes are to be replaced into the
source xml file I am transforming using xslt. The source file will be
as
<source>
<element name="abc">
<a>1</a>
<b>2</b>
<c>3</c>
<d>4</d>
</element>
<element name="xyz">
<a>4</a>
<b>3</b>
<c>2</c>
<d>1</d>
</element>
</source>
The config file has nodes defined in this format:
<config>
<element name="abc">
<a>5</a>
<d>9</d>
</element>
<element name="xyz">
<a>5</a>
<d>9</d>
</element>
</config>
I need help in writing xslt to read nodes matching
config/element/@name with source/element/@name and replace nodes in
the source file.
Thanks
--
Regards,
Mukul Gandhi
--~------------------------------------------------------------------
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>
--~--