• title: XSL Transformations (XSLT) Version 2.0 description: XSL Transformations (XSLT) Version 2.0 に関するメモ書き author: aterai pubdate: 2016-03-24

fn:doc-avalable()

@echo off
setlocal

set SRC=C:/tmp/aaa/word/document.xml
set DST=C:/output/aaa/xxx.xml
set LIB=C:/lib/saxon-9.1.0.8.jar
set SAXON=net.sf.saxon.Transform
set XSLT=C:/xslt/docx2xxx.xsl

"%JAVA_HOME%\bin\java" -cp "%LIB%" %SAXON% -s:"%SRC%" -xsl:"%XSLT%" -o:"%DST%"
<!-- C:/tmp/aaa/word/numbering.xml が存在するかをチェックしたい -->
<xsl:if test="fn:doc-available(fn:replace(fn:base-uri(),'document\.xml$','numbering.xml'))">
  <xsl:variable name="numbering" select="fn:document('numbering.xml',/)/w:numbering" />
</xsl:if>
  • fn:document('numbering.xml',/)のように第二引数を指定して入力ファイル相対パスでfn:doc-availableを使用することは出来ない
  • fn:base-uri() -> C:/tmp/aaa/word/document.xml
  • fn:resolve-uri('') -> C:/xslt/docx2xxx.xsl