This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

xsl:key


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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]