Subject: Re: [xsl] Copying only attributes, no element From: Oliver Becker <obecker@xxxxxxxxxxxxxxxxxxxxxxx> Date: Thu, 5 Apr 2001 17:11:12 +0200 (MET DST) |
Hi, > My XML is > > <ROWSET> > <ROW id="1"> > <NAME>Name1 (Mod)</NAME> > <STRING>String1 (Mod)</STRING> > </ROW> > <ROW id="2"> > <STRING>String2 (Mod)</STRING> > </ROW> [...] > </ROWSET> > > > How can with an XPath expresion get > > <ROWSET> > <ROW id="1"> > > </ROW> > <ROW id="2"> [...] > </ROWSET> > > (Copy only attributes, no element) > [...] > <xsl:copy-of select="ROWSET/ROW[@id]" > Don't work This would make a deep copy all ROW elements which have an id attribute. The solution is to use xsl:copy only for those elements you want to copy. You can't use a single XPath expression for this purpose. <xsl:template match="ROW"> <!-- copy ROW --> <xsl:copy> <!-- copy attributes --> <xsl:copy-of select="@id" /> <!-- or select="@*" for all attributes --> <!-- ignore the children --> </xsl:copy> </xsl:template> <xsl:template match="ROWSET"> <!-- copy ROWSET --> <xsl:copy> <!-- assuming you don't have attributes in a ROWSET element --> <!-- process children --> <xsl:apply-templates /> </xsl:copy> </xsl:template> Cheers, Oliver /-------------------------------------------------------------------\ | ob|do Dipl.Inf. Oliver Becker | | --+-- E-Mail: obecker@xxxxxxxxxxxxxxxxxxxxxxx | | op|qo WWW: http://www.informatik.hu-berlin.de/~obecker | \-------------------------------------------------------------------/ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Embedding HTML in JSP, Jeni Tennison | Thread | [xsl] case insensitive attributes, Jay Gardner |
Re: [xsl] writing an xml with jsp, xml | Date | Re: [xsl] Copying only attributes, , Jeni Tennison |
Month |