首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >XSLT1.0跨多个节点的不同属性列表

XSLT1.0跨多个节点的不同属性列表
EN

Stack Overflow用户
提问于 2018-06-22 06:01:56
回答 1查看 30关注 0票数 0

我被困在没有扩展的XSLT1.0上。

我需要获取属性不同的节点列表。根据下面的XML,第一个post_press_version (25)的结果应该是1,2,3,5,第二个(26)的结果应该是1,2,3,6

代码语言:javascript
运行
复制
<order>
<post_press_version>
    <post_press_version_id>25</post_press_version_id>
    <hopper_allocations>
        <hopper_sequence>
            <sequence_id>2</sequence_id>
            <sequence_part_produced_id>37</sequence_part_produced_id>
            <sequence_part_produced_name>96854-12WS10</sequence_part_produced_name>
            <sequence_qty>2</sequence_qty>
            <hopper number="0" id="" is_insert="False"/>
            <hopper number="1" id="23" is_insert="False">96854-6FL</hopper>
            <hopper number="2" id="13" is_insert="False">96854-8FL003</hopper>
            <hopper number="3" id="15" is_insert="False">96854-10FL004</hopper>
            <hopper number="4" id="" is_insert="False"/>
            <hopper number="5" id="" is_insert="False"/>
            <hopper number="6" id="" is_insert="False"/>
        </hopper_sequence>
        <hopper_sequence>
            <sequence_id>3</sequence_id>
            <sequence_part_produced_id>38</sequence_part_produced_id>
            <sequence_part_produced_name>96854-12WS20</sequence_part_produced_name>
            <sequence_qty>250</sequence_qty>
            <hopper number="0" id="" is_insert="False"/>
            <hopper number="1" id="24" is_insert="False">96854-6FL10</hopper>
            <hopper number="2" id="29" is_insert="False">96854-8FL</hopper>
            <hopper number="3" id="" is_insert="False"/>
            <hopper number="4" id="" is_insert="False"/>
            <hopper number="5" id="31" is_insert="False">96854-10FL</hopper>
            <hopper number="6" id="" is_insert="False"/>
        </hopper_sequence>
    </hopper_allocations>
</post_press_version>
<post_press_version>
    <post_press_version_id>26</post_press_version_id>
    <hopper_allocations>
        <hopper_sequence>
            <sequence_id>2</sequence_id>
            <sequence_part_produced_id>37</sequence_part_produced_id>
            <sequence_part_produced_name>96854-12WS10</sequence_part_produced_name>
            <sequence_qty>2</sequence_qty>
            <hopper number="0" id="" is_insert="False"/>
            <hopper number="1" id="23" is_insert="False">96854-6FL</hopper>
            <hopper number="2" id="13" is_insert="False">96854-8FL003</hopper>
            <hopper number="3" id="15" is_insert="False">96854-10FL004</hopper>
            <hopper number="4" id="" is_insert="False"/>
            <hopper number="5" id="" is_insert="False"/>
            <hopper number="6" id="" is_insert="False"/>
        </hopper_sequence>
        <hopper_sequence>
            <sequence_id>3</sequence_id>
            <sequence_part_produced_id>38</sequence_part_produced_id>
            <sequence_part_produced_name>96854-12WS20</sequence_part_produced_name>
            <sequence_qty>250</sequence_qty>
            <hopper number="0" id="" is_insert="False"/>
            <hopper number="1" id="24" is_insert="False">96854-6FL10</hopper>
            <hopper number="2" id="29" is_insert="False">96854-8FL</hopper>
            <hopper number="3" id="" is_insert="False"/>
            <hopper number="4" id="" is_insert="False"/>
            <hopper number="5" id="31" is_insert="False"/>
            <hopper number="6" id="" is_insert="False">96854-10FL</hopper>
        </hopper_sequence>
    </hopper_allocations>
</post_press_version>

我尝试了下面的XSL,但它只返回1,2,3:第一个hopper_sequence中第一个hopper节点的结果

代码语言:javascript
运行
复制
   <xsl:template match="order">
        <html>
            <body>
                <xsl:for-each
                    select="/order/post_press_version/hopper_allocations/hopper_sequence/hopper[node() and not(@number = preceding::hopper/@number)]]">
                    <p>
                        <xsl:value-of select="../../../post_press_version_id"/>-<xsl:value-of select="@number"/>
                    </p>
                </xsl:for-each>
            </body>
        </html>

    </xsl:template>

我在努力找出我哪里错了。我用这个密钥尝试了Meunchen方法,但得到了类似的结果。

代码语言:javascript
运行
复制
<xsl:key name="unique_post_press_version_hoppers" match="/order/post_press_version/hopper_allocations/hopper_sequence/hopper" use="concat(../../../post_press_version_id, @number)"/>

有什么建议吗?

谢谢

标记

EN

回答 1

Stack Overflow用户

发布于 2018-06-23 00:51:26

我更新并使用了您的XML,并根据您的需要找到了适当的输出。请再看一遍,它是正确的。只有零个人会来。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50978029

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档