xsl-list
[Top] [All Lists]

RE: [xsl] Recursively merge (aggregate) and traverse DOM trees (XML files)?

2006-06-20 00:16:07
Your stylesheet needs to include within it an instruction such as

<xsl:apply-templates select="document(@url)"/>

to dereference the links and recursively process the referenced document.

I don't know what this is supposed to be:

<?xml versionfiltered="1.0" encoding="UTF-8"?>

but it isn't XML.

Michael Kay
http://www.saxonica.com/ 

-----Original Message-----
From: Laky Tang [mailto:tulaky(_at_)yahoo(_dot_)com] 
Sent: 20 June 2006 03:46
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Recursively merge (aggregate) and traverse DOM 
trees (XML files)?

I am trying to recursively merge a tree of XML files and then 
apply some templates to it. I googled and also searched this 
mailing list but did not find any help. I hope this is 
possible using XSLT. Can somebody please point me in the 
right direction?
 
Here is a sample of the input files and desired output. I 
tried a sample.xsl (see below)which only goes thru the root 
file, but need help in making it recursively go thru all the 
linked files as well.
 
Thanks in advance,
Laky, Tang
-----------------
sample1.xml :
<?xml versionfiltered="1.0" encoding="UTF-8"?> 
<?xml-stylesheet type="text/xsl" href="sample.xsl"?> <a> <b p 
="key1" q="2"> xxx </b> <b url = "sample2.xml"></b> <b p 
="key10" q ="27">yyyy</b> </a>
 
sample2.xml :
<?xml versionfiltered="1.0" encoding="UTF-8"?> <a> <b p 
="key4" q="22"> xxx2 </b> <b url = "sample3.xml"></b> <b p 
="key7" q ="37">yyyy2</b> <b url = "sample4.xml"></b> </a>
 
sample3.xml :
<?xml versionfiltered="1.0" encoding="UTF-8"?> <a> <b p 
="key5" q="23"> xxx3 </b> <b p ="key6" q ="26">yyyy3</b> </a>
 
sample4.xml :
<?xml versionfiltered="1.0" encoding="UTF-8"?> <a> <b p 
="key8" q="24"> xxx4 </b> <b p ="key9" q ="25">yyyy4</b> </a>
 
sample.xsl :
<?xml versionfiltered="1.0" encoding="UTF-8"?> 
<xsl:stylesheet versionfiltered="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
xmlns:fo="http://www.w3.org/1999/XSL/Format";
xmlns:xs="http://www.w3.org/2001/XMLSchema";
xmlns:fn="http://www.w3.org/2005/02/xpath-functions";
xmlns:xdt="http://www.w3.org/2005/02/xpath-datatypes";
xmlns:xlink="http://www.w3.org/1999/xlink";>
<xsl:template match="/">
<html>
<head>
<title>Sample</title>
</head>
<h1>
<center>
</center>
</h1>
<p/>
<xsl:for-each xml:space="default" select="param"> 
<xsl:value-of select="."/> </xsl:for-each> <table border="2" 
bgcolor="yellow"> <tr> <th>P</th> <th>Q</th> <th>text</th> 
</tr> <xsl:for-each select="//b"> <tr> <td> <xsl:value-of 
select="@p"/> </td> <td> <xsl:value-of select="@q"/> </td> 
<td> <xsl:value-of select="."/> </td> </tr> </xsl:for-each> 
</table> </html> </xsl:template> </xsl:stylesheet>

 
Desired output (preferably as a html table):
 
P    Q    text
key1    2    xxx 
key4    22    Xxx2
key5    23    xxx3
key6    26    yyy3
Key7    37    yyy2
key8    24    xxx4
key9    25    yyy4
key10    27    yyyy


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection 
around http://mail.yahoo.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>
--~--



--~------------------------------------------------------------------
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>
--~--

<Prev in Thread] Current Thread [Next in Thread>