[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Processing 2 files and using one with key() lookups?
I've run into a couple of odd problems trying to use keys and I guess I have never processed 2 files where one is there to just be used to lookup values. First problem So one file is the one that drives the processing. I was using this as the input to my stylesheet and using the document() function to read the second one and build my keys. This was failing when I tried this: <xsl:param name="QAREPORTname" select="_dan1385156030824-qa.dita"/> <xsl:variable name="QAREPORT" select="document($QAREPORTname, /)"/> <xsl:key name="TOPIC" match="$QAREPORT/data[@name='WDtopicID']" use="."/> or <xsl:key name="TOPIC" match="document($QAREPORTname, /)/data[@name='WDtopicID']" use="."/> or <xsl:key name="TOPIC" match="document(_dan1385156030824-qa.dita, /)/data[@name='WDtopicID']" use="."/> I couldn't find a way to make this work, so my workaround was to feed the reference document to the stylesheet and then read in the driver file and continue processing. Seems to work but lead to the next problem Second problem The key definition seems to get lost when I do the following: <xsl:template match="/"> <xsl:copy-of select="key('TOPIC', 'dan1370798005424')"/> <!-- Force processing to continue with the second file --> <xsl:apply-templates select="$FLATMAP" mode="map"/> </xsl:template> <xsl:template match="/" mode="map"> <xsl:apply-templates mode="map"/> </xsl:template> <xsl:template match="topicref" mode="map"> <topicref> <xsl:copy-of select="key('TOPIC', 'dan1370798005424')"/> </topicref> </xsl:template> What I'm seeing is that the copy-of statement in the template matching '/' with no mode gives me the correct result. When the same statement is used in the match for 'topicref' I get no match or content generated. Question: - Can you explain why the key() doesn't work in the template with the mode and give me a correction/workaround? - I'd really like to go back to the more natural processing order and get rid of the modes on the templates. Is there some way to get my key definition to process a file that isn't the input?
|
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
|