2016-02-11 2 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"]. 

успешно выбирает узел, который имеет значение: 00000000-0000-0000-0000-000000000056 в поле «RapportvalgmulighedIdentifikator».

«diadem1» определяется как следующее пространство имен: «urn: oio: ebst: diadem: 1».

Теперь я хочу изменить логику и выбрать все узлы, кроме той, которую я определяю в селекторе. Итак, как мне выбрать все узлы, кроме одного со значением: 00000000-0000-0000-0000-000000000056 в поле RapportvalgmulighedIdentifikator?.

ответ

2

Если я понимаю правильно, отменив эту конкретную логику можно сделать просто с помощью not():

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

Если каждый Rapportvalgmulighed может иметь только один RapportvalgmulighedIdentifikator ребенка, а затем с помощью != должны работать, чтобы:

Rapportvalgmulighed[ 
    diadem1:RapportvalgmulighedIdentifikator != "00000000-0000-0000-0000-000000000056" 
] 
Смежные вопросы