RE: [xsl] Merge Question Take 2 (complex)

Subject: RE: [xsl] Merge Question Take 2 (complex)
From: "John Hamman" <John@xxxxxxxxxxxxxxxxx>
Date: Wed, 7 Apr 2004 18:27:36 -0400
Like this,
<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>

-----Original Message-----
From: Pieter Reint Siegers Kort [mailto:pieter.siegers@xxxxxxxxxxx] 
Sent: Wednesday, April 07, 2004 6:17 PM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: RE: [xsl] Merge Question Take 2 (complex)

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[@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@xxxxxxxxxxxxxxxxx] 
Sent: Wednesday, April 07, 2004 2:27 PM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
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[@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

Current Thread