powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Значение тега из XML
6 сообщений из 6, страница 1 из 1
Значение тега из XML
    #40001072
assmsk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет.
Наткнулся на непривычную для себя xml'ky и никак не могу вытащить значение тега c помощью xml.value...
Подскажите что нужно написать в месте - ??? чтобы получить значить тега CUST_GENDER

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
<soapenv:Envelope xmlns:soapenv="http://xxx.ru" xmlns:wsin="http://xxx.ru">
  <soapenv:Header />
  <soapenv:Body>
		<wsin:WSIntegrationFraudPreventionScoreMatchGet>
			<inCommonParms>
				<externalSystemCode>EW</externalSystemCode>
				<externalUserCode />
					<inCommonParmsExt>
				<name>WSCallbackURL</name>
				<value>http://xxx:7084/WSIntegationFraudPreventionScoreResult10</value>
					</inCommonParmsExt>
			</inCommonParms>
		<inParms>
        <CUST_GENDER>0</CUST_GENDER>
      </inParms>
		</wsin:WSIntegrationFraudPreventionScoreMatchGet> 
  </soapenv:Body>
</soapenv:Envelope> 




Код: sql
1.
2.
3.
4.
SELECT 
[XML_VALUE].value('???', 'int') as CUST_GENDER
FROM 
TABLE
...
Рейтинг: 0 / 0
Значение тега из XML
    #40001076
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
assmsk,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
declare @x xml = '<soapenv:Envelope xmlns:soapenv="http://xxx.ru" xmlns:wsin="http://xxx.ru">
  <soapenv:Header />
  <soapenv:Body>
		<wsin:WSIntegrationFraudPreventionScoreMatchGet>
			<inCommonParms>
				<externalSystemCode>EW</externalSystemCode>
				<externalUserCode />
					<inCommonParmsExt>
				<name>WSCallbackURL</name>
				<value>http://xxx:7084/WSIntegationFraudPreventionScoreResult10</value>
					</inCommonParmsExt>
			</inCommonParms>
		<inParms>
        <CUST_GENDER>0</CUST_GENDER>
      </inParms>
		</wsin:WSIntegrationFraudPreventionScoreMatchGet> 
  </soapenv:Body>
</soapenv:Envelope>'


select @x.value('declare namespace x="http://xxx.ru"; (/x:Envelope/x:Body/x:WSIntegrationFraudPreventionScoreMatchGet/inParms/CUST_GENDER)[1]', 'int')
...
Рейтинг: 0 / 0
Значение тега из XML
    #40001112
assmsk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
felix_ff, неудачно отредактировал) Не получается получить таким образом если soapenv и wsin разные

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsin="http://WSIntegationFraudPreventionScore10.IFPS.CS.ws.xxx.ru">
  <soapenv:Header />
  <soapenv:Body>
		<wsin:WSIntegrationFraudPreventionScoreMatchGet>
			<inCommonParms>
				<externalSystemCode>EW</externalSystemCode>
				<externalUserCode />
					<inCommonParmsExt>
				<name>WSCallbackURL</name>
				<value>http://xxxsbrmib:7084/WSIntegationFraudPreventionScoreResult10</value>
					</inCommonParmsExt>
			</inCommonParms>
		<inParms>
        <CUST_GENDER>0</CUST_GENDER>
      </inParms>
		</wsin:WSIntegrationFraudPreventionScoreMatchGet> 
  </soapenv:Body>
</soapenv:Envelope>
...
Рейтинг: 0 / 0
Значение тега из XML
    #40001114
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
assmsk
Не получается получить таким образом если soapenv и wsin разные
Ну так определите два неймспейса
Код: sql
1.
2.
3.
4.
select @x.value('
 declare namespace x="http://schemas.xmlsoap.org/soap/envelope/";
 declare namespace y="http://WSIntegationFraudPreventionScore10.IFPS.CS.ws.xxx.ru";
 (/x:Envelope/x:Body/y:WSIntegrationFraudPreventionScoreMatchGet/inParms/CUST_GENDER)[1]', 'int');
...
Рейтинг: 0 / 0
Значение тега из XML
    #40001116
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
assmsk,

Если абстрагироваться от определения w3c, то рассматривайте пространства имен как расширение имени элемента. То есть во всех случаях где элемент отнесен к какому либо пространству имен, что бы его получить вы обязательно должны указать его полное квалификационное имя. Если пространства имен разные то соответственно вы должны ввести столько алиасов сколько есть различных пространств имен. Пример вам выше показали.
...
Рейтинг: 0 / 0
Значение тега из XML
    #40001119
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И для полноты картины плохой способ для ленивых
Код: sql
1.
select @x.value('(/*:Envelope/*:Body/*:WSIntegrationFraudPreventionScoreMatchGet/inParms/CUST_GENDER)[1]', 'int');
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Значение тега из XML
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]