首页 > 解决方案 > XSLT value-of 返回实际值而不是节点

问题描述

我是 XSL 转换的新手并正在尝试学习,但我现在遇到了一个问题。我从具有“父”节点或不具有“父”节点的 API 接收信息。

<nodeList>
    <nodeInfo>
        <nodeName />
        <nodeAddress />
        <nodeEtc />
    </nodeInfo>
    <nodeInfo>
        <nodeName />
        <nodeAddress />
        <nodeEtc />
    </nodeInfo>
    <nodeInfo>
        <nodeName />
        <nodeAddress />
        <nodeEtc />
    </nodeInfo>
</nodeList>

或者

<nodeInfo>
    <nodeName />
    <nodeAddress />
    <nodeEtc />
</nodeInfo>

我试图让 XSLT 基于单个或多个创建一个变量,但是将单个包装进去,因为我需要稍后计算节点。这是我的 XSLT

<xsl:variable name="listOfData">
    <xsl:choose>
        <xsl:when test="/nodeList">
            <xsl:value-of select="/nodeList" />
        </xsl:when>
        <xsl:otherwise>
            <nodeList>
                <xsl:value-of select="/nodeInfo" />
            </nodeList>
        <xsl:otherwise
    </xsl:choose>
</xsl:variable>

当我这样做时,倍数可以正常工作,但结果是单个节点有一个节点,每个子节点作为 \n 新行前面的值。任何帮助将不胜感激,如果可以提供任何进一步的解释链接以获得更好的理解。谢谢!

标签: xmlxslt

解决方案


推荐阅读