制作了一组文件,如何访问这些节点? XSLT

时间:2016-04-22 21:11:14

标签: xml xslt

结构是我们有一个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文件)

0 个答案:

没有答案