2016-02-11 71 views
1

選擇,除了一個在XML中的所有節點我有以下XML文檔:使用XQuery

<RapportV4Type xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:oio:ebst:diadem:4"> 
    <RapportResume xmlns="urn:oio:ebst:diadem:resume:1"> 
     <RapportvalgmulighedSamling> 
      <Rapportvalgmulighed> 
       <RapportResumeTekst>Ja</RapportResumeTekst> 
       <RapportvalgmulighedIdentifikator xmlns="urn:oio:ebst:diadem:1">00000000-0000-0000-0000-000000000056</RapportvalgmulighedIdentifikator> 
      </Rapportvalgmulighed> 
      <Rapportvalgmulighed> 
       <RapportResumeTekst>Ja</RapportResumeTekst> 
       <RapportvalgmulighedIdentifikator xmlns="urn:oio:ebst:diadem:1">00000000-0000-0000-0000-000000000011</RapportvalgmulighedIdentifikator> 
      </Rapportvalgmulighed> 
     </RapportvalgmulighedSamling> 
    </RapportResume> 
</RapportV4Type> 

而且我正在做一個SQL查詢包括以下

Rapportvalgmulighed[diadem1:RapportvalgmulighedIdentifikator = "00000000-0000-0000-0000-000000000056"]. 

成功地選擇具有節點值在「RapportvalgmulighedIdentifikator」字段中爲00000000-0000-0000-0000-000000000056。

「diadem1」被定義爲以下命名空間:「urn:oio:ebst:diadem:1」。

我想現在改變邏輯,並選擇除了我在選擇器中定義的節點之外的所有節點。那麼如何選擇RapportvalgmulighedIdentifikator字段中值爲00000000-0000-0000-0000-000000000056的所有節點?

回答

2

如果我理解這個正確,扭轉這一特定的邏輯可以簡單地通過使用not()完成:

Rapportvalgmulighed[ 
    not(diadem1:RapportvalgmulighedIdentifikator = "00000000-0000-0000-0000-000000000056") 
] 

如果每個Rapportvalgmulighed只能有一個RapportvalgmulighedIdentifikator孩子,然後使用!=應努力:

Rapportvalgmulighed[ 
    diadem1:RapportvalgmulighedIdentifikator != "00000000-0000-0000-0000-000000000056" 
]