内置动态内容的XSLT XPATH谓词?

时间:2011-12-11 09:02:25

标签: xslt dynamic xpath predicate

我正在尝试仅选择那些变量值等于其他变量值的节点。确切的文字是:

<xsl:value-of select="/data/peptides/peptide/protein_accessions[accession = ./accession/accs]" />

但它不起作用。我想不可能在谓词中放置一个节点值表达式。但是,我发现很难相信。这就是为什么我在这里问:)

这个表达式出了什么问题??

谢谢!

编辑: xml代码将是这样的:

<data> <proteins>...</proteins> <peptides><peptide>...<protein_accessions><accession>89456</accession></protein_accessions>...</peptide>...</peptides> </data>

什么不能用于

<xsl:value-of select="/data/peptides/peptide/protein_accessions[accession = ./accession/accs]" />

一起使用

<xsl:value-of select="/data/peptides/peptide/protein_accessions[accession = current()/accession/accs]" />

但是,我在应用模板调用中使用它,我仍然不确定这个表达式是否符合我的要求(选择具有该特定数字的所有肽节点),但至少我可以继续并尝试一下:)

谢谢!

2 个答案:

答案 0 :(得分:0)

如果没有看到你的XML,这很难回答,但你可能意味着

<xsl:value-of select="
  /data/peptides/peptide/protein_accessions[
    accession = current()/accession/accs
  ]
" />

答案 1 :(得分:0)

  

一起使用
    <xsl:value-of select=
      "/data/peptides/peptide/protein_accessions
                              [accession = current()/accession/accs]" />
     

但是,我在应用模板调用中使用它,我仍然没有   确定这个表达式是否符合我的要求(选择全部   具有该特定数量的肽节点)

上面的XPath表达式 根本不会选择任何peptide元素

它选择的所有节点(如果存在)都是名为protein_accessions的元素。

如果您想要选择适当的peptide元素,请使用以下内容:

/data/peptides/peptide
                [protein_accessions/accession 
                =
                 current()/accession/accs
                ]