我想用xslt 2.0检查文件是否存在。但是,它不起作用。我试过这个:
<xsl:choose>
<xsl:when test="doc(iri-to-uri(concat($currFolder, '/', $currSubFolder, '/', @href)))">
(路径正确)
然而,当文件不存在时,这会导致错误。
和此:
<xsl:choose>
<xsl:when test="doc-available(iri-to-uri(concat($currFolder, '/', $currSubFolder, '/', @href)))">
不起作用,它告诉我文件显然不存在。
这是正确的方法吗?如果存在xml文件,则检查的可靠方法。
答案 0 :(得分:3)
根据this similar question,作者提到,就检查是否存在xml文件而言,这样的事情对他们起作用。
现在,它会单独检查每个文件夹,如果该文件夹中不存在该文件,则会将其写入输出,无论它是否已存在于另一个以前的文件夹中。
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions">
<xsl:variable name="currInput" select="tokenize(document-uri(.), '/')[last()]"/>
<xsl:choose>
<xsl:when test="doc-available(iri-to-uri(concat(.,'/',$currInput))) = fn:false()"></xsl:when>