Altova Mailing List Archives>Archive Index >microsoft.public.xsl Archive Home >Recent entries >Thread Prev - Re: Not extracting data correctly [Thread Next] Re: Not extracting data correctlyTo: NULL Date: 9/11/2008 2:43:00 PM
Eric Stott wrote:
> I need this to be created:
> <ns0:Root xmlns:ns0="http://Schemas.Output">
>
> <Record>
>
> <Data>Here is ZZ Data</Data>
>
> </Record>
>
> </ns0:Root>
Assuming the input document is
<ns0:Root xmlns:ns0="http://Schemas.Input">
<Record>
<SubRecord Qualifier="AA">
<Data>Here is AA Data</Data>
</SubRecord>
<SubRecord Qualifier="ZZ">
<Data>Here is ZZ Data</Data>
</SubRecord>
</Record>
</ns0:Root>
then this stylesheet
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"
xmlns:nsi="http://Schemas.Input"
xmlns:ns0="http://Schemas.Output"
exclude-result-prefixes="nsi">
<xsl:param name="q" select="'ZZ'"/>
<xsl:strip-space elements="*"/>
<xsl:output method="xml" indent="yes"/>
<xsl:template match="nsi:Root">
<xsl:element name="ns0:{local-name()}"
namespace="http://Schemas.Output">
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
<xsl:template match="Record">
<Record>
<xsl:apply-templates select="SubRecord[@Qualifier = $q]/Data"/>
</Record>
</xsl:template>
<xsl:template match="*">
<xsl:element name="{name()}">
<xsl:apply-templates select="@* | node()"/>
</xsl:element>
</xsl:template>
<xsl:template match="@* | text()">
<xsl:copy/>
</xsl:template>
</xsl:stylesheet>
creates the output
<ns0:Root xmlns:ns0="http://Schemas.Output">
<Record>
<Data>Here is ZZ Data</Data>
</Record>
</ns0:Root>
--
Martin Honnen --- MVP XML
http://JavaScript.FAQTs.com/
| ||||||
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | Mobile | Full Site | |||
|
