结构是我们有一个xml文件代表整个杂志的问题,然后在同一文件夹中有一个子文件夹,其中包含代表杂志每个页面的所有xml文件。
使用这个网站和xslt的婴儿书,我已经达到了可以将单个页面转换为SVG的程度,我可以创建一个文件列表,但我需要两个想法之间的结缔组织
如果我在mets.xml文件中运行此xsl:
<?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"
exclude-result-prefixes="xs"
version="2.0">
<xsl:output indent="yes"/>
<xsl:template match="/">
<xsl:for-each select="collection('./alto/?select=*.xml')" >
<xsl:element name='file'>
<xsl:value-of select="tokenize(document-uri(.), '/')[last()]"/>
</xsl:element>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
我得到的东西看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<file>bmtnabt_1917-07_01_0001.alto.xml</file>
<file>bmtnabt_1917-07_01_0002.alto.xml</file>
<file>bmtnabt_1917-07_01_0003.alto.xml</file>
<file>bmtnabt_1917-07_01_0004.alto.xml</file>
<file>bmtnabt_1917-07_01_0005.alto.xml</file>
到目前为止一切顺利。但是,我如何实际访问单个文件中的节点? 这不起作用:
<xsl:template match="/">
<xsl:for-each select="collection('./alto/?select=*.xml')" >
<xsl:element name='file'>
<xsl:value-of select="tokenize(document-uri(.), '/')[last()]"/>
<xsl:value-of select="alto/Description"/>
</xsl:element>
</xsl:for-each>
</xsl:template>
例如,不处理alto / Description节点。关于如何在这个循环中处理这些节点的想法?在文件内部进行搜索不是问题(我有一个工作脚本可以执行我想要的个人alto文件)