XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Show tree view Topic
Topic Page 1 2 3 4 5 6 7 8 9 Go to previous topicPrev TopicGo to next topicNext Topic
Postnext
Matt AdamsSubject: How to validate if file or directory exists?
Author: Matt Adams
Date: 14 Oct 2004 04:00 PM
Assume there is an element like

<file attr="D:\test\proj12\log.txt" .... />

How do I validate resp. find out from inside a XSLT stylesheet
if the file mentioned in the attribute really exists?

Is there a function like

<value-of select="fileexists(//file[@attr])" />

Keep in mind. If I would write

<value-of select="exists(//file[@attr])" />

I would test if the attribute exists. That is not what I want.
I want to test the outside (from the XML doc) world existence of
a file defined by the attr value.

Matt

Posttop
Ivan PedruzziSubject: How to validate if file or directory exists?
Author: Ivan Pedruzzi
Date: 15 Oct 2004 01:03 AM
Hi Matt,

XSLT doesn't offer a direct solution , so I am presenting 3 way
taking advantage of the different extension function architectures.

-------------------------------------------------------
Microsoft MSXML 3/4 and .NET

<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:user="http://www.stylusstudio.com/file-utilities">

<msxsl:script language="JScript" implements-prefix="user">
<![CDATA[
fso = new ActiveXObject("Scripting.FileSystemObject");
function fileExists(filename){
return fso.FileExists(filename);
}

// With .NET XSLT processor we need to use the Framework API
//function fileExists(filename){
// return System.IO.File.Exists(filename);
//}

]]>
</msxsl:script>

<xsl:template match="/">
<xsl:value-of select="user:fileExists('c:\AUTOEXEC.BAT')"/>
<xsl:value-of select="user:fileExists('c:\AUTOEXEC.BAT_')"/>
</xsl:template>
</xsl:stylesheet>

-------------------------------------------------------
Apache Xalan

<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xalan="http://xml.apache.org/xalan"
extension-element-prefixes="user"
xmlns:user="http://www.stylusstudio.com/file-utilities">

<xalan:component prefix="user" functions="fileExists">
<xalan:script lang="javascript">

// The JavaScript engine let us access the standard Java API

function fileExists(filename){
f = new java.io.File(filename);
return f.exists();
}
</xalan:script>
</xalan:component>

<xsl:template match="/">
<xsl:value-of select="user:fileExists('c:\AUTOEXEC.BAT')"/>
<xsl:value-of select="user:fileExists('c:\AUTOEXEC.BAT_')"/>
</xsl:template>
</xsl:stylesheet>



-------------------------------------------------------
Apache Xalan; Saxon 6.x/ 8.x using a java extension function

FileExists.java

public class FileExists{
public static Object fileExists(String FileName) {
return new Boolean(new java.io.File(FileName).exists());
}
}

<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:util="FileExists">
<xsl:template match="/">
<xsl:value-of select="util:fileExists('c:\AUTOEXEC.BAT')"/>
<xsl:value-of select="util:fileExists('c:\AUTOEXEC.BAT_')"/>
</xsl:template>
</xsl:stylesheet>


Hope this helps

Ivan

 
Topic Page 1 2 3 4 5 6 7 8 9 Go to previous topicPrev TopicGo to next topicNext Topic
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  
go

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.