Hi John,
1. Note that your page.xml is not well-formed (you must close the 2nd
<Local> node element).
2. Your xpath expression is also not correct (the 'id' should be 'local'):
<xsl:copy-of
select="document(file)//Page/Content/Local[(_at_)local='en-US']/text()"/>
3. You could simply pass in a parameter 'local' with values either 'en-US'
or 'en-ES', and in your stylesheet using <xsl:if> or <xsl:choose> you can
filter out what you do not want in the output.
Q: What does your merged XML look like?
<prs/>
http://www.pietsieg.com
http://www.pietsieg.com/dotnetnuke
Contributor on www.ASPToday.com
Co-author on "Professional ASP.NET XML with C#", July 2002 by Wrox Press
-----Original Message-----
From: John Hamman [mailto:John(_at_)iThinkdesigns(_dot_)com]
Sent: Wednesday, April 07, 2004 2:27 PM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Merge Question Take 2 (complex)
Ok I have successfully merged 2 documents that had the same Root namespace.
But now I have a more complext Merge question.
Now one of my xml docs has the following sytax
Page.xml
<?xml version="1.0" encoding="UTF-8"?>
<Page id="somepageid" version="1.0" published="1.0" current="1.0">
<Content>
<Local local="en-US">
...lots of sub stuff in "English"
</Local >
<Local local="es-ES">
...lots of sub stuff in "Spanish"
</Content>
</Page>
Event.xml
<Page>
<News>
<event>
<Title local="en-US">English name</Title>
<Title local="es-ES">Spanish name</Title>
<details>some non language specific details</details>
</event>
<event>
<Title local="en-US">English name</Title>
<Title local="es-ES">Spanish name</Title>
<details>some non language specific details</details>
</event>
</News>
</Page>
Ok I have a merge xml too
<files>
<file>home.xml</file>
<file>Event.xml</file>
</files>
Merger.xsl
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="files">
<Page>
<xsl:copy-of
select="document(file)//Page/Content/Local[(_at_)id='en-US']/*"/>
</ Page >
</xsl:template>
</xsl:stylesheet>
And I want to merge them together, BUT I want only certain information in
this merger so that the output is like this. This is what it would look like
if I only wanted the English information.
<Page id="somepageid" version="1.0" published="1.0" current="1.0">
<Content>
<Local local="en-US">
...lots of sub stuff in "English"
</Local >
</Content>
<News>
<event>
<Title local="en-US">English name</Title>
<details>some non language specific
details</details>
</event>
<event>
<Title local="en-US">English name</Title>
<details>some non language specific
details</details>
</event>
</News>
</Page>
Is this possible like this. Would it be more possible if I changed the way
the xml is in the page.xml and event.xml docs?
Thanks
john
--+------------------------------------------------------------------
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>
--+--