using document() inside a loop to get all files in a directory

dSchwartz

Usenet Archive
Joined
Feb 18, 2004
Messages
10
Reaction score
0
What I think I'm looking for is a way (in XSL stylesheet) to get the contents of a directory. How can this be accomplished?

more detailed:

/root
index.aspx
xsl_style.xsl
/xml
newsletter_001.xml
newsletter_002.xml
newsletter_xxx.xml

now i want to use xsl_style.xsl to pull two attributes from the root element of each and every file in the xml directory. Something like this:

for (each file in xml AS xmlFile)
<xsl:value-of select="document(xmlFile)//newsletter[@title]" /> <xsl:value-of select="document(xmlFile)//newsletter[@date]" />

how do i create that loop? I have to do this without a file that contains a list of the files in the xml directory, so i need to dynamically get the contents of the xml directory!

Thanks for your time
 

Chris Barber

Usenet Archive
Joined
Apr 12, 2002
Messages
404
Reaction score
0
Since XSLT relies heavily on optimisation all references to external documents must be available and valid at XSLT document parse time. So .... you can't dynamically open a document unless you know the document filepathnames *beforehand* and either hard code them or pass them as parameters to the document.

Dynamic folder and file recursion is *not* really suitable for XSLT - use a script language to achieve that.

Chris.

What I think I'm looking for is a way (in XSL stylesheet) to get the contents of a directory. How can this be accomplished?

more detailed:

/root
index.aspx
xsl_style.xsl
/xml
newsletter_001.xml
newsletter_002.xml
newsletter_xxx.xml

now i want to use xsl_style.xsl to pull two attributes from the root element of each and every file in the xml directory. Something like this:

for (each file in xml AS xmlFile)
<xsl:value-of select="document(xmlFile)//newsletter[@title]" /> <xsl:value-of select="document(xmlFile)//newsletter[@date]" />

how do i create that loop? I have to do this without a file that contains a list of the files in the xml directory, so i need to dynamically get the contents of the xml directory!

Thanks for your time
 

Hans-Georg Michna

Usenet Archive
Joined
Aug 21, 2003
Messages
405
Reaction score
0
What I think I'm looking for is a way (in XSL stylesheet) to get the contents of a directory. How can this be accomplished?

You already got good advice, so there's just one additional hint here.

I have solved a similar problem by creating a batch file or shell script that parses the folder and creates an XML file using echo commands.

In your case that XML file can contain the names of the files and can be queried from your XSL stylesheet using import or the document function.

Hans-Georg
 

Chris Barber

Usenet Archive
Joined
Apr 12, 2002
Messages
404
Reaction score
0
One more comment.

document doesn't handle missing files very well - it raises a parse time error. First time I got this I admit that I had expected it to just gracefully gloss over and continue (shows how much I read the docs then).

I'm not saying that this behaviour is wrong but it's a bit annoying at times and to my mind makes the XSLT a bit fragile where this particular method is concerned.

Chris.

What I think I'm looking for is a way (in XSL stylesheet) to get the contents of a directory. How can this be accomplished?

more detailed:

/root
index.aspx
xsl_style.xsl
/xml
newsletter_001.xml
newsletter_002.xml
newsletter_xxx.xml

now i want to use xsl_style.xsl to pull two attributes from the root element of each and every file in the xml directory. Something like this:

for (each file in xml AS xmlFile)
<xsl:value-of select="document(xmlFile)//newsletter[@title]" /> <xsl:value-of select="document(xmlFile)//newsletter[@date]" />

how do i create that loop? I have to do this without a file that contains a list of the files in the xml directory, so i need to dynamically get the contents of the xml directory!

Thanks for your time
 

dSchwartz

Usenet Archive
Joined
Feb 18, 2004
Messages
10
Reaction score
0
Thanks all for your comments. I guess I'll probably think about storing the xml inside MS SQL server, or even just using SQL Server instead of xml....
 

Chris Barber

Usenet Archive
Joined
Apr 12, 2002
Messages
404
Reaction score
0
OK, backtracking a bit.

I have a similar situation where I use script to create an XML document that is the files and folders with filenames and extensions etc. (not that hard). Once you have that you can do anything you want using XSLT and the document function as long as the files don't disappear.

If you keep your recursive script to generate the base XML generalised then you can use any XSLT you want to give any form of representation of the files and folders. In my case I am parsing for XML documents since I'm keeping metadata about DBF files in corresponding XML files (same names) and then using this as the basis for an ADO upload to a specific system.

Chris.

Thanks all for your comments. I guess I'll probably think about storing the xml inside MS SQL server, or even just using SQL Server instead of xml....
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
548,208
Messages
3,104,799
Members
249,594
Latest member
henrywalsh

Latest Threads

Top