0

与えられたXML:

  <?xml version="1.0" encoding="UTF-8"?> 
     <sensor-system>
        <velocity>120.00</velocity> <!-- km/h --> 
        <temperature location="inside">24.6</temperature> 
         <temperature location="outside">-12.5</temperature>

     <seats>

     <seat location="front">
          <id>1</id> 
          <temperature>32.5</temperature> 
          <heating-is-on/>

      </seat> 
    <seat location="back">

      <id>2</id>
      <temperature>23.5</temperature>
   </seat>

</seats>
  </sensor-system>

必要なXMLパス:

温度が20.0度以上30.0度以下のすべてのフロントシートを識別する絶対XPATHを指定します。

私の解決策を確認してください:

これは正しいです :

/sensor-system/seats[temperature>=20 | temperature <=30]/seat[@location="front"]

ありがとうございました。

4

2 に答える 2

3

xpathは、シート要素をチェックする必要があるときに、温度要素がシート要素の子であると想定しているため、完全には正しくありません。

編集:元のxpathで、「|」を使用していることを指摘するもう1つのこと 演算子。これは和集合演算子であり、2つのノードセットを引数として取ります。したがって、引数は実際には「条件」であるため、この例では機能しません。

代わりにこれを試してください

/sensor-system/seats/seat[temperature >= 20][temperature <= 30][@location = "front"]

これをXSLTで使用している場合は、ここで<をエスケープする必要がある場合があることに注意してください。

/sensor-system/seats/seat[temperature >= 20][temperature &lt;= 30][@location = "front"]

あなたはこれをすることを好むかもしれませんが

/sensor-system/seats/seat[temperature >= 20][not(temperature > 30)][@location = "front"]
于 2013-02-06T14:56:38.860 に答える
-1

これを試してみてください:

/sensor-system/seats/seat[@location="front"]/temperature >=20 and /sensor-system/seats/seat[@location="front"]/temperature <= 30

これはtrueのためになり[@location="back"]ますfalse[@location="front"]

于 2013-02-06T14:58:44.623 に答える