|
Subject: Re: [xsl] How to insert a set nodes under the root of an arbitrary XML using XSL? From: Graydon <graydon@xxxxxxxxx> Date: Fri, 7 Jan 2011 16:16:16 -0500 |
On Fri, Jan 07, 2011 at 04:07:43PM -0500, William C Thompson scripsit:
> I would love to know how to (using XSL) insert a pre-determined node a
> (with children b and c) as a child of the root node of an arbitrary XML. I
> know how to apply the XSL once I've got it. I just need help with the XSL.
> All the examples I'm finding online assume a pre-determined XML, which I
> cannot in this case.
[snip illustrative abstract example]
> Most importantly, please note that any solutions with hard-coded references
> to any node names (other than those I want to insert) are not usable for
> me. I have no control over the schema of the XML into which I'm sticking
> these other nodes. I know only that it's a valid XML file and the root has
> at least one child. The above example is a purely made up example designed
> to illustrate the question.
You can do this with two templates, at least if I understand the question:
<!-- Our old friend the identity transform -->
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<!-- match the first element child of the root node -->
<xsl:template match="/*[1]">
<element> Your fixed content goes here as literal result elements </element>
<!-- but don't lose the former first element child of the root node -->
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
-- Graydon
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| [xsl] How to insert a set nodes und, William C Thompson | Thread | Re: [xsl] How to insert a set nodes, Graydon |
| [xsl] How to insert a set nodes und, William C Thompson | Date | Re: [xsl] How to insert a set nodes, Graydon |
| Month |