Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 еще один XML  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 4930
Коллеги, помогите плз достать следующие значения из приложенного XML.
Все мои варианты не выдают ничего :(

/Triplist/Trip idx
/Triplist/Trip/SeviceDays sDaysR
/Triplist/Trip/LegList/Leg direction

заранее спасибо )

+ большой XML и запрос
declare @x xml 
set @x = N'<TripList xmlns="hafas_rest" serverVersion="1.13-SNAPSHOT" dialectVersion="1.23" >
  <Trip idx="0" checksum="7d9389e2_3" tripId="C-0" duration="PT1H27M">
    <ServiceDays sDaysR="Vr" planningPeriodBegin="2018-12-09" planningPeriodEnd="2019-12-14" />
    <LegList>
      <Leg type="JNY" idx="0" name="SPR 6418" number="6418" category="SPR" reachable="true" direction="Tilburg">
        <Origin type="ST" routeIdx="3" date="2019-04-12" time="05:38:00" tz="120" track="1" prognosisType="PROGNOSED">
          <Notes>
            <Note key="IS" priority="0" type="A">Station A</Note>
            <Note key="SH" priority="0" type="A">Station B</Note>
            <Note key="SS" priority="0" type="A">Station R</Note>
            <Note key="EK" type="I">gp</Note>
          </Notes>
        </Origin>
        <Destination type="ST" routeIdx="4" date="2019-04-12" time="05:43:00" tz="120" track="4" prognosisType="PROGNOSED">
          <Notes>
            <Note key="IS" priority="0" type="A">Station R</Note>
            <Note key="SH" priority="0" type="A">Station A</Note>
            <Note key="SS" priority="0" type="A">Station B</Note>
            <Note key="EK" type="I">ehv</Note>
          </Notes>
        </Destination>
        <Notes>
          <Note routeIdxFrom="3" routeIdxTo="3" key="ES" priority="0" type="A">+eas, TPSI</Note>
          <Note routeIdxFrom="4" routeIdxTo="4" key="ES" priority="0" type="A">+eas, TPSI</Note>
        </Notes>
        <JourneyDetailRef ref="1|3246|0|684|12042019" />
        <JourneyStatus>P</JourneyStatus>
        <Product catCode="3" catIn="SPR" catOut="SPR     " catOutL="Sprinter" catOutS="SPR" line="" name="SPR 6418" num="6418" operator="NS" operatorCode="ns " admin="100___" />
      </Leg>
      <Leg type="WALK" idx="1" dist="0" duration="PT4M" name="">
        <Origin type="ST" date="2019-04-12" time="05:43:00" tz="120">
          <Notes>
            <Note key="IS" priority="0" type="A">Station R</Note>
            <Note key="SH" priority="0" type="A">Station A</Note>
            <Note key="SS" priority="0" type="A">Station B</Note>
            <Note key="EK" type="I">ehv</Note>
          </Notes>
        </Origin>
        <Destination type="ST" date="2019-04-12" time="05:47:00" tz="120">
          <Notes>
            <Note key="IS" priority="0" type="A">Station R</Note>
            <Note key="SH" priority="0" type="A">Station B</Note>
            <Note key="SS" priority="0" type="A">Station A</Note>
            <Note key="EK" type="I">ehv</Note>
          </Notes>
        </Destination>
        <GisRef ref="H|1|W$A=1@O=...@L=1100896@a=128@$201904120543$201904120547$$$1$" />
      </Leg>
      <Leg type="JNY" idx="2" name="IC 3516 " number="3516" category="IC" reachable="true" direction="Barnaul Airport">
        <Origin type="ST" routeIdx="0" date="2019-04-12" time="05:47:00" tz="120" track="6" prognosisType="PROGNOSED">
          <Notes>
            <Note key="IS" priority="0" type="A">Station R</Note>
            <Note key="SH" priority="0" type="A">Station B</Note>
            <Note key="SS" priority="0" type="A">Station A</Note>
            <Note key="EK" type="I">ehv</Note>
          </Notes>
        </Origin>
        <Destination type="ST" routeIdx="13" date="2019-04-12" time="06:35:00" tz="120" track="7" prognosisType="PROGNOSED">
          <Notes>
            <Note key="IS" priority="0" type="A">Station R</Note>
            <Note key="SS" priority="0" type="A">Station A</Note>
            <Note key="EK" type="I">ut</Note>
          </Notes>
        </Destination>
        <Notes>
          <Note routeIdxFrom="0" routeIdxTo="0" key="ES" priority="0" type="A">+eas, TPSI</Note>
          <Note routeIdxFrom="13" routeIdxTo="13" key="ES" priority="0" type="A">+eas, TPSI</Note>
        </Notes>
        <JourneyDetailRef ref="1|515713|0|684|12042019" />
        <JourneyStatus>P</JourneyStatus>
        <Product catCode="1" catIn="IC" catOut="IC      " catOutL="Intercity" catOutS="IC" line="" name="IC 3516 " num="3516" operator="NS" operatorCode="ns " admin="100___" />
      </Leg>
      <Leg type="WALK" idx="3" dist="0" duration="PT2M" name="">
        <Origin type="ST" date="2019-04-12" time="06:35:00" tz="120">
          <Notes>
            <Note key="IS" priority="0" type="A">Station R</Note>
            <Note key="SS" priority="0" type="A">Station A</Note>
            <Note key="EK" type="I">ut</Note>
          </Notes>
        </Origin>
        <Destination type="ST" date="2019-04-12" time="06:37:00" tz="120">
          <Notes>
            <Note key="IS" priority="0" type="A">Station A</Note>
            <Note key="SS" priority="0" type="A">Station R</Note>
            <Note key="EK" type="I">ut</Note>
          </Notes>
        </Destination>
        <GisRef ref="H|1|W$A=1@O=...@a=128@$201904120635$201904120637$$$1$" />
      </Leg>
      <Leg type="JNY" idx="4" name="IC 3014 " number="3014" category="IC" reachable="true" direction="Helder">
        <Origin type="ST" routeIdx="13" date="2019-04-12" time="06:38:00" tz="120" track="5" prognosisType="PROGNOSED">
          <Notes>
            <Note key="IS" priority="0" type="A">Station R</Note>
            <Note key="SS" priority="0" type="A">Station B</Note>
            <Note key="EK" type="I">ut</Note>
          </Notes>
        </Origin>
        <Destination type="ST" routeIdx="23" date="2019-04-12" time="07:05:00" tz="120" track="8a" prognosisType="PROGNOSED">
          <Notes>
            <Note key="IS" priority="0" type="A">Station R</Note>
            <Note key="SH" priority="0" type="A">Station A</Note>
            <Note key="SS" priority="0" type="A">Station B</Note>
            <Note key="EK" type="I">asd</Note>
          </Notes>
        </Destination>
        <Notes>
          <Note routeIdxFrom="13" routeIdxTo="13" key="ES" priority="0" type="A">+eas, TPSI</Note>
          <Note routeIdxFrom="23" routeIdxTo="23" key="ES" priority="0" type="A">+eas, TPSI</Note>
        </Notes>
        <JourneyDetailRef ref="1|515057|0|684|12042019" />
        <JourneyStatus>P</JourneyStatus>
        <Product catCode="1" catIn="IC" catOut="IC      " catOutL="Intercity" catOutS="IC" line="" name="IC 3014 " num="3014" operator="NS" operatorCode="ns " admin="100___" />
      </Leg>
    </LegList>
  </Trip>
  <Trip idx="1" checksum="e65ce839_3" tripId="C-1" duration="PT1H41M">
    <ServiceDays sDaysR="Vr" planningPeriodBegin="2018-12-09" planningPeriodEnd="2019-12-14" />
    <LegList>
      <Leg type="JNY" idx="0" name="SPR 6418" number="6418" category="SPR" reachable="true" direction="Tilburg">
        <Origin type="ST" routeIdx="3" date="2019-04-12" time="05:38:00" tz="120" track="1" prognosisType="PROGNOSED">
          <Notes>
            <Note key="IS" priority="0" type="A">Station R</Note>
            <Note key="SH" priority="0" type="A">Station A</Note>
            <Note key="SS" priority="0" type="A">Station B</Note>
            <Note key="EK" type="I">gp</Note>
          </Notes>
        </Origin>
        <Destination type="ST" routeIdx="4" date="2019-04-12" time="05:43:00" tz="120" track="4" prognosisType="PROGNOSED">
          <Notes>
            <Note key="IS" priority="0" type="A">Station R</Note>
            <Note key="SH" priority="0" type="A">Station A</Note>
            <Note key="SS" priority="0" type="A">Station B</Note>
            <Note key="EK" type="I">ehv</Note>
          </Notes>
        </Destination>
        <Notes>
          <Note routeIdxFrom="3" routeIdxTo="3" key="ES" priority="0" type="A">+eas, TPSI</Note>
          <Note routeIdxFrom="4" routeIdxTo="4" key="ES" priority="0" type="A">+eas, TPSI</Note>
        </Notes>
        <JourneyDetailRef ref="1|3246|0|684|12042019" />
        <JourneyStatus>P</JourneyStatus>
        <Product catCode="3" catIn="SPR" catOut="SPR     " catOutL="Sprinter" catOutS="SPR" line="" name="SPR 6418" num="6418" operator="NS" operatorCode="ns " admin="100___" />
      </Leg>
      <Leg type="JNY" idx="1" name="IC 2916 " number="2916" category="IC" reachable="true" direction="AlmaAta">
        <Origin type="ST" routeIdx="0" date="2019-04-12" time="06:04:00" tz="120" track="4" prognosisType="PROGNOSED">
          <Notes>
            <Note key="IS" priority="0" type="A">Station R</Note>
            <Note key="SH" priority="0" type="A">Station A</Note>
            <Note key="SS" priority="0" type="A">Station B</Note>
            <Note key="EK" type="I">ehv</Note>
          </Notes>
        </Origin>
        <Destination type="ST" routeIdx="23" date="2019-04-12" time="07:19:00" tz="120" track="8a" prognosisType="PROGNOSED">
          <Notes>
            <Note key="IS" priority="0" type="A">Station R</Note>
            <Note key="SH" priority="0" type="A">Station A</Note>
            <Note key="SS" priority="0" type="A">Station B</Note>
            <Note key="EK" type="I">asd</Note>
          </Notes>
        </Destination>
        <Notes>
          <Note routeIdxFrom="0" routeIdxTo="0" key="ES" priority="0" type="A">+eas, TPSI</Note>
          <Note routeIdxFrom="23" routeIdxTo="23" key="ES" priority="0" type="A">+eas, TPSI</Note>
        </Notes>
        <JourneyDetailRef ref="1|514769|0|684|12042019" />
        <JourneyStatus>P</JourneyStatus>
        <Product catCode="1" catIn="IC" catOut="IC      " catOutL="Intercity" catOutS="IC" line="" name="IC 2916 " num="2916" operator="NS" operatorCode="ns " admin="100___" />
      </Leg>
    </LegList>
  </Trip>
</TripList>'

select 
	x.content.value('(@idx)[1]', 'int') [Idx]

from (select @x) as q(x) 
cross apply x.nodes('Triplist/Trip') as  x(content);
8 май 19, 10:59    [21880755]     Ответить | Цитировать Сообщить модератору
 Re: еще один XML  [new]
Посетитель
Member

Откуда:
Сообщений: 1281
komrad,

как вариант
with xmlnamespaces(default  'hafas_rest')


ну и учтите, что "Triplist" и "TripList" - не одно и то же
8 май 19, 11:17    [21880777]     Ответить | Цитировать Сообщить модератору
 Re: еще один XML  [new]
Sergey Syrovatchenko
Member

Откуда: Харьков
Сообщений: 103
XML если что регистрозависимый:

SELECT t.c.value('(@idx)[1]', 'INT')
FROM @x.nodes('*:TripList/*:Trip') t(c)
8 май 19, 11:19    [21880779]     Ответить | Цитировать Сообщить модератору
 Re: еще один XML  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 4930
Sergey Syrovatchenko
XML если что регистрозависимый:

SELECT t.c.value('(@idx)[1]', 'INT')
FROM @x.nodes('*:TripList/*:Trip') t(c)

спасибо за верное направление!
8 май 19, 13:53    [21881008]     Ответить | Цитировать Сообщить модератору
 Re: еще один XML  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 4930
Посетитель
komrad,

как вариант
with xmlnamespaces(default  'hafas_rest')


ну и учтите, что "Triplist" и "TripList" - не одно и то же

а как будет выглядеть запрос в данном случае?
простая подстановка в начало не сработала...
8 май 19, 13:56    [21881012]     Ответить | Цитировать Сообщить модератору
 Re: еще один XML  [new]
Посетитель
Member

Откуда:
Сообщений: 1281
komrad
Посетитель
komrad,

как вариант
with xmlnamespaces(default  'hafas_rest')



ну и учтите, что "Triplist" и "TripList" - не одно и то же

а как будет выглядеть запрос в данном случае?
простая подстановка в начало не сработала...


потому что надо было учесть вот это

Посетитель

ну и учтите, что "Triplist" и "TripList" - не одно и то же


;with xmlnamespaces(default  'hafas_rest')
select 
	x.content.value('(@idx)[1]', 'int') [Idx]

from (select @x) as q(x) 
cross apply x.nodes('TripList/Trip') as  x(content);
8 май 19, 13:58    [21881019]     Ответить | Цитировать Сообщить модератору
 Re: еще один XML  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 4930
Посетитель,

спасибо! )
8 май 19, 15:15    [21881187]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить