This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
xsl:key
- To: xsl-list at mulberrytech dot com
- Subject: xsl:key
- From: Rhonda Fischer <rhonda at n-space dot com dot au>
- Date: Wed, 21 Jun 2000 09:28:43 +0000
- Organization: N-Space
- Reply-To: xsl-list at mulberrytech dot com
Hello,
I would like to extract all paragraphs that have an attribute
of doc equal to contract. Instead I only receive the following
output and I was hoping to understand why?
<Template><Destination>
</Destination></Template>
Thank you very much
Rhonda
temp.xml
-------
<!DOCTYPE ProjectPlan [
<!ELEMENT Template (Destination+)>
<!ELEMENT Destination (Target+)>
<!ELEMENT Target (Content+)>
<!ATTLIST Target
doc (contract | advice | plan) #REQUIRED
>
<!ELEMENT Content (#PCDATA)>
]>
<Template>
<Destination>
<Target doc="contract"/>
<Para>CONTRACT para destined for output to contract.xml</Para>
</Destination>
</Template>
.... other para's all with different doc value according to DTD
transform.xsl
----------
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet
xmlns:xsl="http://ww.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:key name="blueprint" match="Target" use="@doc"/>
<xsl:output method="xml"/>
<xsl:param name='contractType'>contract</xsl:param>
<xsl:template match="/">
<xsl:apply-templates select='/Template'/>
</xsl:template>
<xsl:template match="Template">
<xsl:element name="{name()}">
<xsl:copy-of select="attribute::node()"/>
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
<xsl:template match="Destination">
<xsl:element name="{name()}">
<xsl:copy-of select="key('blueprint', '$contractType')"/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list