从节点集

时间:2015-08-17 19:08:46

标签: xslt xslt-1.0 muenchian-grouping

我无法从两个组合列表中提取唯一的作业列表。这两个列表在同一文档中,但结构不同。

我的计划是构建一个结合两个列表的节点集。然后我会有一个列表,所有元素都具有相同的结构。然后我可以为第二个节点集选择唯一的成员。

我使用Muenchian方法提取here所描述的唯一成员。

为什么这不起作用的任何建议?

  <!--create a key to use Muenchian grouping on jobs-->
  <xsl:key name="keyJobID" match="Job" use="JobID"/>

  <!--select unique job nodes from a node-set-->
  <xsl:template name="UniqueJobNodes">
    <xsl:param name="List"/>
    <xsl:for-each select="$List/Job[not(generate-id() = generate-id(key('keyJobID', JobID)[1]))]">
      <xsl:text>does-this-work?</xsl:text>
    </xsl:for-each>
  </xsl:template>

传递给模板的节点集I似乎是正确的。当我使用&#39; $ List / Job&#39;没有条件我得到结果。

输入节点集如下所示:

  <Job Primary="1">
    <JobProficiency>100</JobProficiency>
    <JobID>300.Supervisor</JobID>
    <JobPayRate>15.4</JobPayRate>
  </Job>
  <Job>
    <JobProficiency>50</JobProficiency>
    <JobID>SUPERVISOR</JobID>
    <JobPayRate>15.4</JobPayRate>
  </Job>

1 个答案:

答案 0 :(得分:-1)

我找到了一个有效的解决方案。我认为问题是key()函数针对当前文档节点而不是变量中的节点集进行操作。由于我可以毫无问题地对列表进行排序,因此我使用了这个而不是xsl键

$sql1 = "ALTER TABLE ".$table." AUTO_INCREMENT = 1";
$gereset = mysqli_query($db,$sql1);