关于XSLT后续兄弟的问题

时间:2011-02-28 05:49:36

标签: xslt

我的XML结构看起来像这样

<COMPANY>
<COMPANY-DATA>ABC</COMPANY-DATA>
<ID>10800</ISSUE-ID>
<PROJECT-ID/>
</COMPANY-ISSUE-INFO>
 </COMPANY>
"COMPANY Node repeats"

我想做的是我想要检查COMPANY-DATA ='ABC'并获取其ID

我尝试使用

<xsl:value-of select="//COMPANY-DATA/.='ABC'/following-sibling::ID/."/> 

但这似乎不起作用并抛出错误

  

表达式必须评估为节点集   //COMPANY-DATA/.= - &gt;'ABC'&lt; -   /以下同胞:: ID /.

谢谢,

KARTHIK

编辑:我找到了解决方案

 **<xsl:value-of select="//COMPANY-DATA[.='ABC']/following-sibling::ID/."/>** 

由于

2 个答案:

答案 0 :(得分:1)

我注意到的第一件事是,你剪断了你的后缀是没有效的XML。元素<ID>由结束元素</ISSUED_ID>关闭,并且只有一个结束元素</COMPANY-ISSUE-INFO>

但是,如果我找对你,你想找到<COMPANY>元素的<COMPANY-DATA>元素的ID。所以你对你的问题的评论应该这样做。但你也可以使用

<xsl:value-of select="//COMPANY[COMPANY-DATA='ABC']/ID"/>

这样就无需按特定顺序使用Comapny-Data和ID。

答案 1 :(得分:1)

<xsl:value-of select="//COMPANY-DATA[.='ABC']/following-sibling::ID/."/>