【问题标题】:Question on XSLT following-sibling关于 XSLT 跟随兄弟的问题
【发布时间】:2011-02-28 05:49:35
【问题描述】:

我的 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/."/> 

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

表达式必须计算为节点集 //公司数据/.= -->'ABC'

谢谢,

卡提克

编辑:我找到了解决方案

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

谢谢

【问题讨论】:

  • 表达式必须计算为节点集 //COMPANY-DATA/.= -->'ABC'
  • 好的。我明白了
  • 回答你自己的问题就OK了。
  • @Alejandro:我没有看到任何标记为答案的链接
  • 您必须先添加答案。

标签: xslt


【解决方案1】:

我注意到的第一件事是,剪断你的 postet 不是有效的 XML。元素&lt;ID&gt; 被结束元素&lt;/ISSUED_ID&gt; 关闭,并且有一个单独的关闭元素&lt;/COMPANY-ISSUE-INFO&gt;

但是,如果我猜对了,您想找到 &lt;COMPANY&gt; 元素的 ID,其中 &lt;COMPANY-DATA&gt; 是 ABC。因此,您对问题的评论应该这样做。但你也可以使用

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

这消除了将 Comapny-Data 和 ID 按特定顺序排列的需要。

【讨论】:

    【解决方案2】:
    <xsl:value-of select="//COMPANY-DATA[.='ABC']/following-sibling::ID/."/>
    

    【讨论】:

    • 只有在 id 元素始终是 company-data 元素之后的元素时才有效
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多