[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: How Do I Exclude Portions Of XML When XForming XML
At 2004-02-24 15:16 -0800, Gary Fix wrote:
> I have a sample XML file and I want to transform this to a different XML file while omitting part of the original xml. I see this as a mapping issue where omission is the mapping of something to nothing. Using keys to store the mappings from an external file would allow you to have multiple mappings for multiple files with the same stylesheet. > Any help would be appreciated. I hope the example below helps. .................... Ken T:\ftemp>type gary.xml <Auto> <CustId> <SPName>com.anysystem</SPName> <CustPermId/> <CustLoginId>fred</CustLoginId> </CustId> <BasicVehInfo> <ModelYear>1994</ModelYear> <VehIdentificationNumber>1ABCD123456</VehIdentificationNumber> </BasicVehInfo> </Auto> T:\ftemp>type mappings.xml <?xml version="1.0" encoding="iso-8859-1"?> <mappings> <mapping old="Auto" new="Vehicle"/> <mapping old="BasicVehInfo" new="VehicleData"/> <mapping old="ModelYear" new="VehicleYear"/> <mapping old="VehIdentificationNumber" new="VIN"/> </mappings> T:\ftemp>type gary.xsl <?xml version="1.0" encoding="iso-8859-1"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output indent="yes"/> <xsl:key name="names" match="mapping/@new" use="../@old"/> <xsl:template match="*"> <xsl:variable name="oldname" select="name(.)"/> <xsl:variable name="newname"> <xsl:for-each select="document('mappings.xml')"> <xsl:value-of select="key('names',$oldname)"/> </xsl:for-each> </xsl:variable> <xsl:if test="string($newname)"> <xsl:element name="{$newname}"> <xsl:apply-templates select="@*|node()"/> </xsl:element> </xsl:if> </xsl:template> <xsl:template match="@*|text()"><!--identity for all other nodes--> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template> <!--this cleans up the output--> <xsl:template match="text()[not(normalize-space())]"/> </xsl:stylesheet> T:\ftemp>saxon gary.xml gary.xsl <?xml version="1.0" encoding="utf-8"?> <Vehicle> <VehicleData> <VehicleYear>1994</VehicleYear> <VIN>1ABCD123456</VIN> </VehicleData> </Vehicle> T:\ftemp>
G. Ken Holman mailto:gkholman@xxxxxxxxxxxxxxxxxxxx Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/ Box 266, Kars, Ontario CANADA K0A-2E0 +1(613)489-0999 (F:-0995) Male Breast Cancer Awareness http://www.CraneSoftwrights.com/s/bc XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|