【发布时间】:2012-08-02 20:36:07
【问题描述】:
所以我有这个代码:
<xsl:for-each select="item">
<Row>
<Cell Borders="#ffffff">
<xsl:attribute name="Background">
<xsl:choose>
<xsl:when test="position() mod 2 = 1">#CCCCFF</xsl:when>
<xsl:when test="position() mod 2 = 0">#FFFFFF</xsl:when>
</xsl:choose>
</xsl:attribute>
<Paddings Left="5" Right="5" Top="2" Bottom="2"/>
<xsl:for-each select="//queries/query/selection/dataItem">
<Text Style="TableContent">
<xsl:value-of select="@name"/>
</Text>
</xsl:for-each>
</Cell>
<Cell Borders="#ffffff">
<xsl:attribute name="Background">
<xsl:choose>
<xsl:when test="position() mod 2 = 1">#CCCCFF</xsl:when>
<xsl:when test="position() mod 2 = 0">#FFFFFF</xsl:when>
</xsl:choose>
</xsl:attribute>
<Paddings Left="5" Right="5" Top="2" Bottom="2"/>
<Text Style="TableContent">
<xsl:choose>
<xsl:when test="qi">
<xsl:value-of select="qi"/>
</xsl:when>
<xsl:otherwise>
<Text>N/A</Text>
</xsl:otherwise>
</xsl:choose>
</Text>
</Cell>
</Row>
</xsl:for-each>
我正在尝试从 XML 中提取信息,但是该信息位于两个不同的节点中,具有两个不同的 XPATH。我还需要匹配来自一个节点的信息,即名称。到位于不同位置下的另一个节点,具有不同的 XPATH。有没有办法遍历节点中的每个名称并将其与在同一 XML 中的另一个节点中找到的信息相匹配?
非常感谢
【问题讨论】:
-
是的,这听起来确实可行,例如可能使用 xsl:key,但我们确实需要查看您的 XML 示例以提供更具体的帮助。如果您编辑您的问题以显示有意义的 XML 示例,那将有很大帮助。谢谢!
-
对不起,我之前忘记提供 xml 的链接,但我现在已经添加了链接。希望它有一点帮助。我正在尝试获取沿袭信息并将沿袭下的名称节点与查询中的 dataItem 节点下的表达式匹配。
-
请编辑问题并在问题中提供一个 XML 文档(小)。请同时提供所需的确切结果并解释转换必须实现的任何要求。