如何在 XSLT 中检查文件是否存在? [英] How can I check for a file existence in XSLT?

查看:25
本文介绍了如何在 XSLT 中检查文件是否存在?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在 XSLT 中检查 HTML 文件是否存在.我怎样才能做到这一点?我已经从这里尝试过 file-exists.xsl https://gist.github.com/emth/4531924 但它对我不起作用.我一直试图让它运行超过 2 个小时,但我被卡住了.这是我的蚂蚁片段:

I would like to check in XSLT whether an HTML file exists or not. How can I do this? I have already tried the file-exists.xsl from here https://gist.github.com/emth/4531924 but it doesn't work for me. I've been trying to get it running for over 2 hours now, but I am stuck. Here's my ant snippet:

<target name="transform">
    <xslt in="/tmp/sample.xml" out="/tmp/out.html" style="/tmp/sample.xsl" />
</target>

这是我的 xslt 文件:

and this is my xslt file:

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:java="http://www.java.com/">
<xsl:import href="file-exists.xsl"/>
...    
<xsl:if test="java:file-exists('myfile.html', base-uri())">
    <!-- do something here... -->
</xsl:if>
....

用蚂蚁运行这个我会得到以下错误:

Running this with ant I will get the following error:

[xslt] Processing /tmp/sample.xml to /tmp/out.html
[xslt] Loading stylesheet /tmp/sample.xsl
[xslt] : Error! The first argument to the non-static Java function 'fileExists' is not a valid object reference.
[xslt] : Error! Cannot convert data-type 'void' to 'boolean'.
[xslt] : Fatal Error! Could not compile stylesheet
[xslt] Failed to process /tmp/sample.xml

任何人都可以给我提供一个运行示例或者还有其他选择吗?谢谢!

Can anybody provide me a running example or is there any other alternative? Thanks!

推荐答案

我找到了解决方案:

<xsl:when test="fs:exists(fs:new('myfile.html'))" xmlns:fs="java.io.File">
    <!-- do something here... -->
</xsl:when>

它独立于 XSLT 1.0 或 2.0

and it works independently of XSLT 1.0 or 2.0

这篇关于如何在 XSLT 中检查文件是否存在?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆