处理一个目录下的所有文件,并根据file-name创建一个文件
Process all files in a directory and create a file according to file-name
我有一个有效的 XSLT 转换,我需要将其应用于指定目录中的所有文件:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:tei ="http://www.tei-c.org/ns/1.0"
exclude-result-prefixes="xs"
version="3.0">
<xsl:strip-space elements="*"/>
<xsl:output method="text" indent="yes"/>
<xsl:output omit-xml-declaration="yes"/>
<xsl:variable name="files" select="collection('C:\Users\KW\Desktop\Interim_56_zerlegt')"/>
<xsl:template match="/">
<xsl:result-document href="Interim_56_zerlegt/test.txt" method="text">
Kuerzel; AT/NT; Stelle
<xsl:apply-templates select="//note"></xsl:apply-templates>
</xsl:result-document>
</xsl:template>
<xsl:template match="//note">
<xsl:choose>
<xsl:when test="child::*[1][self::ref[@type='biblical']]">
<xsl:for-each select="child::*[@type='biblical']/@cRef">
<xsl:value-of select="."/>
<xsl:text>;</xsl:text>
</xsl:for-each>
<xsl:text></xsl:text>
<xsl:text>test;</xsl:text>
<xsl:value-of select="."/>
<xsl:text> </xsl:text>
</xsl:when>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
我有一个包含 56 个文件的文件夹,我想 运行 对其进行此转换。
所以我设法为一个文件 (<xsl:result-document href='Interim_56_zerlegt'
) 创建了一个文件,现在我需要为其中的“每个文件”执行此操作(技术上只有 XML 但那里没有其他东西)有没有办法要做到这一点?
使用初始模板
<xsl:param name="files" select="uri-collection('file:///C:/Users/KW/Desktop/Interim_56_zerlegt/?select=*.xml')"/>
<xsl:template name="xsl:initial-template">
<xsl:apply-templates select="$files ! doc(.)"/>
</xsl:template>
并以撒克逊语 (?) 开头,例如 -it
.
您还需要将 href="Interim_56_zerlegt/test.txt"
调整为例如href="Interim_56_zerlegt/result-{position()}.txt"
或者 href="{document-uri() => replace('\.xml$', '.txt')}"
.
我有一个有效的 XSLT 转换,我需要将其应用于指定目录中的所有文件:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:tei ="http://www.tei-c.org/ns/1.0"
exclude-result-prefixes="xs"
version="3.0">
<xsl:strip-space elements="*"/>
<xsl:output method="text" indent="yes"/>
<xsl:output omit-xml-declaration="yes"/>
<xsl:variable name="files" select="collection('C:\Users\KW\Desktop\Interim_56_zerlegt')"/>
<xsl:template match="/">
<xsl:result-document href="Interim_56_zerlegt/test.txt" method="text">
Kuerzel; AT/NT; Stelle
<xsl:apply-templates select="//note"></xsl:apply-templates>
</xsl:result-document>
</xsl:template>
<xsl:template match="//note">
<xsl:choose>
<xsl:when test="child::*[1][self::ref[@type='biblical']]">
<xsl:for-each select="child::*[@type='biblical']/@cRef">
<xsl:value-of select="."/>
<xsl:text>;</xsl:text>
</xsl:for-each>
<xsl:text></xsl:text>
<xsl:text>test;</xsl:text>
<xsl:value-of select="."/>
<xsl:text> </xsl:text>
</xsl:when>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
我有一个包含 56 个文件的文件夹,我想 运行 对其进行此转换。
所以我设法为一个文件 (<xsl:result-document href='Interim_56_zerlegt'
) 创建了一个文件,现在我需要为其中的“每个文件”执行此操作(技术上只有 XML 但那里没有其他东西)有没有办法要做到这一点?
使用初始模板
<xsl:param name="files" select="uri-collection('file:///C:/Users/KW/Desktop/Interim_56_zerlegt/?select=*.xml')"/>
<xsl:template name="xsl:initial-template">
<xsl:apply-templates select="$files ! doc(.)"/>
</xsl:template>
并以撒克逊语 (?) 开头,例如 -it
.
您还需要将 href="Interim_56_zerlegt/test.txt"
调整为例如href="Interim_56_zerlegt/result-{position()}.txt"
或者 href="{document-uri() => replace('\.xml$', '.txt')}"
.