XSL在有很多叔叔的情况下找到正确的叔叔

克拉斯·布隆伯格(Klas Blomberg)

我有这个XML(简略)

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="uncle.xsl"?>
<report>
<title>Bibliography</title>
<dateCreated>2016-07-21T10:33:22</dateCreated>
<dateFormat>yyyy/mm/dd</dateFormat>
    <catalog>
        <marc>
            <marcEntry tag="245" label="Title" ind="00">Title 1</marcEntry>
        </marc>
        <call>
            <callNumber>Call_1_VALLA</callNumber>
            <item>
                <itemID>item_1_VALLA</itemID>
            </item>
        </call>
        <call>
            <callNumber>Call_2_VALLA</callNumber>
            <item>
                <itemID>item_2_VALLA</itemID>
            </item>
            <item>
                <itemID>item_2_2_VALLA</itemID>
            </item>
        </call>
        <call>
            <callNumber>Call_3_CNB</callNumber>
            <item>
                <itemID>item_3_CNB</itemID>
            </item>
        </call>
    </catalog>
    <catalog>
        <marc>
            <marcEntry tag="245" label="Title" ind="04">Title 2</marcEntry>
        </marc>
        <call>
            <callNumber>Call_4_VALLA</callNumber>
            <item>
                <itemID>item_4-VALLA</itemID>
            </item>
        </call>
        <call>
            <callNumber>Call_5_CNB</callNumber>
            <item>
                <itemID>item_5_CNB</itemID>
            </item>
            <item>
                <itemID>item_5_2_CNB</itemID>
            </item>
        </call>
    </catalog>
</report>

我想将每个itemID与最接近的前一个“叔叔”(callNumber)结合起来,因此得到如下列表:Title 1 Call_1_VALLA item_1_VALLA

标题1通话_2_VALLA item_2_VALLA

标题1通话_2_VALLA item_2_2_VALLA

标题1通话_3_CNB项_3_CNB

标题2通话_4_VALLA item_4-VALLA

标题2通话_5_CNB项目_5_CNB

标题2通话_5_CNB项目_5_2_CNB

我创建了一个样式表-但是,它选择了第一个叔叔而不是最近的叔叔。

标题1通话_1_VALLA项目_1_VALLA

标题1通话_1_VALLA item_2_VALLA

标题1通话_1_VALLA item_2_2_VALLA

标题1通话_1_VALLA item_3_CNB

标题2通话_4_VALLA item_4-VALLA

标题2通话_4_VALLA项_5_CNB

标题2通话_4_VALLA item_5_2_CNB

这些是我的样式表的相关部分-需要改进什么?

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>


<xsl:template match="/">
    <catalog>

        <xsl:for-each select="report/catalog/call/item">

                        <itemline>
                            <Title><xsl:value-of select="../../marc/marcEntry[@tag='245']"/></Title>
                            <callNumber><xsl:value-of select="../../call/callNumber"/></callNumber>
                            <itemID><xsl:value-of select="itemID"/></itemID>
                        </itemline>

        </xsl:for-each>
    </catalog>
</xsl:template>

</xsl:stylesheet>
C队

您需要将的输出更改callNumber为此...

<callNumber><xsl:value-of select="../callNumber"/></callNumber>

也许这

<callNumber><xsl:value-of select="preceding-sibling::callNumber"/></callNumber>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在有或没有jquery的情况下使用延迟角度承诺的正确方法是什么?

在有多个候选者的情况下,如何确保调用正确的函数

PROLOG没有兄弟的叔叔关系

在有条件的情况下使用“输入”

Python Pandas:找到第n个大熊猫,并在有领带的情况下计数

Bob叔叔的TDD规则

用CSS指示“叔叔”

在实际填充存储库之后,在有空存储库的情况下,在哪里可以找到显示的初始命令?

在很多情况下for循环的性能

在有和没有最终密集层的情况下训练多对多状态LSTM

Jenkins 管道中的 sh 命令在有和没有 @NonCps 的情况下都会失败

如何在有或没有空间的情况下获得价值?

在有和没有SciPy的情况下计算k组合的数量

sequelize 在有缓存和没有缓存的情况下都很慢

在有或没有自动接线的情况下,Symfony 4 setter注入无法捆绑使用

在有或没有事先打印的情况下,结果变化惊人

在有和没有GUI的情况下运行QProcess

在有和没有pytest-mock的情况下模拟标准库函数

更改“叔叔”组件中的状态?

确保代码在有条件的情况下运行两次

如何触发仅在有水点的情况下的类

如何在有/无焦点的情况下更改 ngTagsInput 的边框颜色?

我的SQL仅在有注释的情况下带来结果

如何在有条件的情况下替换冲突(对于SQLite)?

MySQL在有条件的情况下连接两列

熊猫在有条件的情况下将数组列转换为多列

熊猫:在有条件的情况下查找最大值

仅在有条件的情况下运行crontab

为什么在有usbhid的情况下我们需要usbkbd驱动程序?