2017-08-30 164 views
0

我正在嘗試這種情況,但它總是通過其他方式退出,你能幫我嗎?感謝xQuery IF條件無法正常工作

if ($orderLine[osm:ProductSpecification/text()="X"] and osm:ExtensibleAttributes[osm:Name = "Y" or osm:Name = "Z"] and osm:NewValue/text() = "A") 
      then 
       <AccessType>X</AccessType> 
      else 
       <AccessType>{$attribute/osm:NewValue/text()}</AccessType> 
      ) 
+0

顯然沒有辦法,我們可以幫你調試此沒有看到的源文件,或知道什麼$ ORDERLINE包含。我們不是魔術師。 –

回答

1

我的問題解決了更換過濾器範圍:

if ($orderLine[osm:ProductSpecification/text()="X" and osm:ExtensibleAttributes[osm:Name = "Y" or osm:Name = "Z"] and osm:NewValue/text() = "A" ]]) 
      then 
       <AccessType>X</AccessType> 
      else 
       <AccessType>{$attribute/osm:NewValue/text()}</AccessType> 
      ) 
+2

在某些情況下,當文檔已知或受模式約束時,已知平等測試的兩邊都是單個項目。因此,使用'eq'(值比較)比'='(一般比較)更有效,因爲後者涉及雙存在量化(「存在兩個匹配的項目」)。智能引擎會自動進行優化,但只能在輸入信息的範圍內進行優化。 –