【问题标题】:xsl:for-each not working for child nodes?xsl:for-each 不适用于子节点?
【发布时间】:2015-04-07 19:54:19
【问题描述】:

XML:

<?xml version="1.0" encoding="UTF-8"?>
<Service>
    <Author name="Raymond">
        <Book>Master Mind</Book>
        <Book>Big Bites</Book>
    </Author>
    <Author name="CLAYTON">
        <Book>Beyond the RACK</Book>
    </Author>
</Service>`

使用这个 XSLT:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:template match="/">
        <xsl:for-each select="//Author">
            <xsl:value-of select="@name" />
            <xsl:for-each select="//Book">
                <xsl:value-of select="." />
            </xsl:for-each>
        </xsl:for-each>
    </xsl:template>
</xsl:stylesheet>`

预期输出:

Raymond Master Mind Big Bites CLAYTON Beyond the RACK

【问题讨论】:

  • @rap-2-h 请不要更改 OP 的预期输出(或添加细节)。

标签: xslt foreach


【解决方案1】:

对内部for-each使用相对路径select="Book"

【讨论】:

    【解决方案2】:
    <xsl:for-each select="//Book">
    

    选择整个文档中的所有 Book 节点,从/ 根节点开始。要仅选择当前作者的子书,请尝试:

    <xsl:for-each select="Book">
    

    --
    注意:我不清楚您希望在写入输出的值之间插入空格的依据是什么。

    【讨论】:

    • @user2663020 如果您的问题得到解答,请通过接受答案将其关闭。
    猜你喜欢
    • 2015-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多