[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

[xsl] XSLT to query/output a portion of an XML source document


Subject: [xsl] XSLT to query/output a portion of an XML source document
From: Chris Coyle <chriscoyle@xxxxxxxxx>
Date: Wed, 24 Jan 2007 11:51:12 -0800 (PST)

I need to write a query to pull 1 node out of a source
XML document.

The source document has a structure of 

<Transaction>
	<Response>
		<MasterCatalogResponse>
			<ExternalKeys>
				<Key>1</Key>
				<Key>a</Key>
			</ExternalKeys>
				<EntityData>
					<Attribute>a</Attribute>
					<Attribute>b</Attribute>
				</EntityData>
		</MasterCatalogRecord>
		<MasterCatalogResponse>
			<ExternalKeys>
				<Key>2</Key>
				<Key>b</Key>
			</ExternalKeys>
				<EntityData>
					<Attribute>a</Attribute>
					<Attribute>b</Attribute>
				</EntityData>
		</MasterCatalogRecord>
		<MasterCatalogResponse>
			<ExternalKeys>
				<Key>3</Key>
				<Key>c</Key>
			</ExternalKeys>
				<EntityData>
					<Attribute>a</Attribute>
					<Attribute>b</Attribute>
				</EntityData>
		</MasterCatalogRecord>
	</Response>
</Transaction>

I need to extract the <EntityData> element for a given
<ExternalKeys> value match.  The result should look
like this for an ExternalKeys  (2,b)

				<EntityData>
					<Attribute>a</Attribute>
					<Attribute>b</Attribute>
				</EntityData>


This is what I tried:

<?xml version="1.0" encoding="UTF-8"?>
<?altova_samplexml SampleQueryResponse.xml?>
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:fn="http://www.w3.org/2005/xpath-functions">

    <xsl:output method="xml" encoding="UTF-8"
indent="yes" />

<xsl:template match="/">
   <xsl:for-each
select="//DataService/Transaction/Response/MasterCatalogRecord">
	   <xsl:element name="EntityData">
		   <xsl:value-of select="."/>
	   </xsl:element>
   </xsl:for-each>
 </xsl:template>

</xsl:stylesheet>


Any suggestions are welcome.

	



 
____________________________________________________________________________________
Bored stiff? Loosen up... 
Download and play hundreds of games for free on Yahoo! Games.
http://games.yahoo.com/games/front


Current Thread
Keywords
xml