XSLT XPATH 谓词内部包含动态内容?

发布于 2024-12-20 15:16:12 字数 882 浏览 2 评论 0 原文

我试图仅选择那些变量值等于其他变量值的节点。确切的文本是这样的:

但它不起作用。我想不可能将节点值表达式放在谓词内。但我也觉得很难相信。所以这就是为什么我在这里问:)

这个表达有什么问题?

谢谢!

编辑: xml 代码如下所示:

; <蛋白质>... <肽><肽>...<蛋白质_登记><登记>89456......

不起作用的内容

以及< /code>

配合使用

但是,我在 apply-template 调用中使用它,我仍然不确定这个表达式是否执行我想做的操作(选择具有该特定编号的所有肽节点),但至少我可以继续尝试一些事情:)

谢谢!

I'm trying to select only those nodes that have a value of a variable equal to a value of other variable. The exact text would be this:

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

But it does not work. I guess it is not possible to put a node value expression inside the predicate. But also, I find it difficult to believe. So that's why I am here asking :)

What's wrong with this expression??

Thanks!

EDIT:
The xml code would be something like this:

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

And what did not work with

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

works with

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

However, I am using this in an apply-template call, I am still not sure if this expression does what I want to do (to select all the peptide nodes with that particular number), but at least I can move on and try things :)

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

谁许谁一生繁华 2024-12-27 15:16:12

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

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

Without seeing your XML this is hard to answer, but you probably mean

<xsl:value-of select="
  /data/peptides/peptide/protein_accessions[
    accession = current()/accession/accs
  ]
" />
伴我心暖 2024-12-27 15:16:12

适用于

 

但是,我在 apply-template 调用中使用它,但我仍然没有
确定这个表达式是否做了我想做的事情(选择所有
具有该特定编号的肽节点)

上面的 XPath 表达式显然根本选择任何元素

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

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

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

works with

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

However, I am using this in an apply-template call, I am still not
sure if this expression does what I want to do (to select all the
peptide nodes with that particular number)

The XPath expression above clearly doesn't select any peptide element at all.

All nodes it selects, if such exist, are elements named protein_accessions.

In case you want the appropriate peptide elements to be selected, use something like this:

/data/peptides/peptide
                [protein_accessions/accession 
                =
                 current()/accession/accs
                ]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文