【问题标题】:计算来自不同节点的相等查找值。 XSLT
【发布时间】:2022-01-15 08:37:20
【问题描述】:

计算来自不同节点的相等查找值。 XSLT

计数<book> 从数据库表中具有相同查找值的节点。对于每个<code>,我在数据库表中进行搜索以找到该代码的对应值。查找中的这个值我将保存到变量中 不同的<code> 数字可以具有相同的查找值(例如:/code=11 和 code=12 在 DB 表中具有相同的查找值,所以我必须输出 2。对于code=13 我要输出 1。

在输出中,我必须显示不同查找值的计数器。

 <xsl:for-each select="bookstore/book/code">
  <xsl:variable name="$code" select ="lookup("code","book_code")"/>
    <xsl:value-of select="count(preceding-sibling::$code)"/>
 </xsl:for-each>

输入:

`

<?xml version="1.0" encoding="UTF-8"?>

<bookstore>
  <book>
    <code>11</code>
  </book>
  <book>
    <code>12</code>
  </book>
</bookstore>
<bookstore>
  <book>
    <code>13</code>
  </book>
</bookstore>

输出: 2 1

【问题讨论】:

  • “code=11 和 code=12 具有相同查找值”的查找表在哪里?您的处理器支持哪个版本的 XSLT?

标签: xml xslt xsd lookup


【解决方案1】:

在您想要的 XSLT 2 或 3 中

<xsl:for-each-group select="bookstore/book" group-by="key('lookup', code, $lookup-doc)">
  <xsl:value-of select="count(current-group())"/>
</xsl:for-each-group>

我认为,使用例如基于 ` 的第二个文档的键。

你还没有真正拼出第二个文档结构的细节或者你用lookup的伪代码,所以上面只有在显示第二个文档的文档结构的情况下才能适应右键和键调用。

【讨论】:

  • 工作,谢谢:)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多