X-Path / XSL解析问题

时间:2013-12-10 05:45:30

标签: xml xslt xpath

下面是输入xml:

<MEA>
  <MEA01>PD</MEA01>
  <MEA02>
    <MEA0201>HT</MEA0201>
  </MEA02>
  <MEA03>
    <MEA0301>CMT</MEA0301>
    <MEA0302>12.300000</MEA0302>
  </MEA03>
</MEA>

在下面的XSL表达式中,我正在检查PDHT值,并根据我必须采用MEA0302元素值。

但是以下表达并没有给出任何价值。

<xsl:value-of select="MEA[MEA01='PD']/MEA02[MEA0201='HT']/MEA03/MEA0302"/>

2 个答案:

答案 0 :(得分:2)

这将解决您的问题:

MEA[MEA01='PD' and MEA02/MEA0201='HT']/MEA03/MEA0302

答案 1 :(得分:1)

这应该这样做:

MEA[MEA01='PD']/MEA02[MEA0201='HT']/../MEA03/MEA0302

或许这更有意义:

MEA[MEA01='PD' and MEA02[MEA0201='HT']]/MEA03/MEA0302

问题基本上是您进入MEA02然后尝试获取MEA03内的MEA02并且该节点实际上并不存在。所以你可以进入它然后回到父节点(第一种情况)或者只是从父节点查询它(第二种情况)。