none
T-Sql - XML Veri RRS feed

  • Soru

  • Merhaba arkadaşlar,

    XML veri okuyorum,içinden iki tane bilgi almam gerekiyor.

    Cevap anahtarı kolonu geliyor.SoruID kolonu NULL geliyor.

    Örnekte SoruID bu nodeden gelmesini istiyorum. <item ident="128416364">

    ident değerini nasıl alabilirim.

    DECLARE @docHandle int
    DECLARE @cevap XML
    
    SET @cevap = '<item ident="128416364">
      <resprocessing>
        <outcomes>
          <decvar varname="SCORE" vartype="Integer" defaultval="0" minvalue="0" maxvalue="1" />
        </outcomes>
        <respcondition>
          <conditionvar>
            <varequal respident="rsp1">D</varequal>
          </conditionvar>
          <setvar varname="SCORE" action="Add">1</setvar>
        </respcondition>
      </resprocessing>
    </item>'
    
    EXEC sp_xml_preparedocument @docHandle OUTPUT,@cevap
    SELECT * FROM OPENXML(@docHandle,'item',1)
    WITH(
    		SoruID INT 'item',
    		CevapAnahtari nvarchar(1) './resprocessing/respcondition/conditionvar/varequal'
    )
    
    EXEC sp_xml_removedocument @docHandle


    Öğrenmek,öğrenmek...

    9 Nisan 2012 Pazartesi 08:33

Yanıtlar

  • Xquery ile çözüm buldum.

    Cevap anahtarını varchar tipinde döndürdüm.

    SELECT
    	T.CA.value('(/item[1]/resprocessing[1]/respcondition[1]/conditionvar[1]/varequal[1])','varchar(1)') as CA
     FROM #T T


    Öğrenmek,öğrenmek...

    • Yanıt Olarak İşaretleyen Serkan Bark 10 Nisan 2012 Salı 07:01
    9 Nisan 2012 Pazartesi 11:05