You can pass the URI of the second XML document into the transform and then use
doc-available() and doc() to access the second XML document. A rough untested
sketch:
Command line using saxon: -o out.xml first.xml xsl1.xsl "uri=second.xml"
<xsl:transform>
<xsl:param name="uri" as="xsd:string?" />
<xsl:template match="button">
<button id="{id}" type="button"
style="position:fixed;top:{y}px;left:{x}px;">
<xsl:value-of select="value" />
</button>
</xsl:template>
<xsl:template match="/">
<xsl:apply-templates select="xml1/button" />
<xsl:if test="doc-available($uri)">
<xsl:variable name="doc" as="document-node()" select="doc($uri)" />
<xsl:apply-templates select="$doc/xml2/button" />
</xsl:if>
</xsl:template>
</xsl:transform>
Hope this helps, Andy.
-----Original Message-----
From: Sanjaya Liyanage [mailto:sanjayacl(_at_)gmail(_dot_)com]
Sent: Saturday, July 09, 2011 23:21
To: xsl-list
Subject: [xsl] Accessing two XML files from XSL file
Hi,
I want to access two XML files within my XSL file.How can I achieve
it? Any ideas are welcome
I can access the first.xml file as below because it has the reference
to XSL file(xsl1.xsl).
<xsl:for-each select="xml1/button">
<button id="{id}" type="button"
style="position:fixed;top:{y}px;left:{x}px;"><xsl:value-of
select="value"/></button>
</xsl:for-each>
I want to have something like below which is working which access the
second.XML
<xsl:for-each select="xml2/button">
<button id="{id}" type="button"
style="position:fixed;top:{y}px;left:{x}px;"><xsl:value-of
select="value"/></button>
</xsl:for-each>
first.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="xslt1.xsl"?>
<xml1>
<button>
<id>btn1</id>
<x>225</x>
<y>450</y>
<value>Submit</value>
</button>
</xml1>
second.xml
<?xml version="1.0" encoding="UTF-8"?>
<xml2>
<button>
<id>btn2</id>
<x>325</x>
<y>550</y>
<value>Submit</value>
</button>
</xml2>
Thank you
Sanjaya Liyanage
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--