Quantcast
Channel: SQL.ru: Microsoft SQL Server
Viewing all articles
Browse latest Browse all 7251

Редактировать XML в SQL (тело в теле с одинаковым именем)

$
0
0
надо чтобы в "addresses" было два типа "address"
Вот так правильно, а у меня
<?xml version="1.0"?>
-<soapenv:Envelope xmlns:ap="http://mbtc.ru/afs/application" xmlns:afs="http://mbtc.ru/afs"xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
-<soapenv:Body>

-<afs:afsRequest>
-<afs:auth>
<afs:login>admin</afs:login>
<afs:password>admin</afs:password>
</afs:auth>
<afs:action>match</afs:action>
<afs:ruleSetId>STOP_LIST_1</afs:ruleSetId>

-<Application>
<id>DP:200510</id>
<version>1</version>
<date>12.01.2017</date>
-<app>
<bank>1</bank>

-<applicant>
<id>200510</id>
-<person>
<lastName>БУРГАНОВА</lastName>
<firstName>РУБИНА</firstName>
<secondName>ХАСАНЖАНОВНА</secondName>
<birthDate>18.05.1984</birthDate>
<birthPlace>ГОР.КРАСНОТУРЬИНСК СВЕРДЛОВСКОЙ ОБЛ.</birthPlace>
<sex>0</sex>
</person>

-<doc>
<type>21</type>
<seriesNumber>6512557824</seriesNumber>
<date>07.08.2013</date>
<issued> ОТДЕЛЕНИЕМ УФМС РОССИИ ПО СВЕРДЛОВСКОЙ ОБЛ. В ГОРОДЕКРАСНОТУРЬИНСК </issued>
</doc>

-<addresses>
-<address>
<type>1</type>
<region>66</region>
<postalCode>624465</postalCode>
<city>КРАСНОТУРЬИНСК</city>
<street>НОВАЯ УЛ</street>
<house>34</house>
<flat>1</flat>
</address>

-<address>
<type>2</type>
<region>66</region>
<postalCode>624465</postalCode>
<city>КРАСНОТУРЬИНСК</city>
<street>НОВАЯ УЛ</street>
<house>34</house>
<flat>1</flat>
</address>
</addresses>

-<phone>
<type>3</type>
<number>9089128111</number>
</phone>

</applicant>
</app>
</Application>
</afs:afsRequest>
</soapenv:Body>
</soapenv:Envelope>

Вот что получается
<afsRequest xmlns="http://mbtc.ru/afs/">
  <auth>
    <login>LoyaltyWS</login>
    <password>LoyaltyWS1!</password>
  </auth>
  <action>match</action>
  <ruleSetId>STOP_LIST_1</ruleSetId>
  <Application>
    <id>DP:0</id>
    <version>1</version>
    <date>2017-02-27</date>
    <app>
      <bank>1</bank>
      <applicant>
        <id>0</id>
        <person>
          <lastName>ПОЛОСКОВА</lastName>
          <firstName>НАТАЛЬЯ</firstName>
          <secondName>НИКОЛАЕВНА</secondName>
          <birthDate>13.01.1977</birthDate>
          <sex>0</sex>
        </person>

        <doc>
          <type>21</type>
          <seriesNumber>7503287549</seriesNumber>
          <date>03.06.2003</date>
        </doc>

        <addresses>

          <address>

            <type>1</type>
            <region>74</region>
            <postalCode>454084</postalCode>
            <city>Челябинск г</city>
            <street>Каслинская ул</street>
            <house>52</house>
            <corp>0</corp>
            <flat>80</flat>

            <type>2</type>
            <region>74</region>
            <postalCode>454084</postalCode>
            <city>Челябинск г</city>
            <street>Каслинская ул</street>
            <house>52</house>
            <corp>0</corp>
            <flat>80</flat>

          </address>

        </addresses>

        <phone>
          <type>1</type>
          <number>3517915228</number>
          <type>2</type>
          <number>3517461806</number>
          <type>3</type>
          <number>9090761150</number>
          <type>5</type>
          <number>3512461806</number>
        </phone>

      </applicant>
    </app>
  </Application>
</afsRequest>

И с телефоном беда толжен отображаться только один тип
А вот сам SQL
@Body= (
SELECT	 
'LoyaltyWS' as [auth/login], 
'LoyaltyWS1!' as [auth/password], 
'match' as [action],
'STOP_LIST_1' as [ruleSetId],
N'DP:'+@BP_ID as [Application/id],
'1' as [Application/version],
CONVERT(nvarchar(20),CONVERT(date,GETDATE(),104)) as [Application/date],
'1' as [Application/app/bank],
@BP_ID as [Application/app/applicant/id],
@lastName as [Application/app/applicant/person/lastName],
@firstName as [Application/app/applicant/person/firstName],
@secondName as [Application/app/applicant/person/secondName],
CONVERT(nvarchar(20),@birthDate,104) as [Application/app/applicant/person/birthDate],
@sex as [Application/app/applicant/person/sex],						
'21' as [Application/app/applicant/doc/type],
@seriesNumber as [Application/app/applicant/doc/seriesNumber],
CONVERT(nvarchar(20),@docdate,104) as [Application/app/applicant/doc/date],
--'660-666' as [Application/app/applicant/doc/issued]

'1' as [Application/app/applicant/addresses/address/type],
@regionReg as [Application/app/applicant/addresses/address/region],
@indexReg as [Application/app/applicant/addresses/address/postalCode],
@cityReg as [Application/app/applicant/addresses/address/city],
@streetReg as [Application/app/applicant/addresses/address/street],
@houseReg as [Application/app/applicant/addresses/address/house],	
@corpReg as [Application/app/applicant/addresses/address/corp],
@flatReg as [Application/app/applicant/addresses/address/flat] ,

'2' as [Application/app/applicant/addresses/address/type],
@regionLife as [Application/app/applicant/addresses/address/region],
@indexLife as [Application/app/applicant/addresses/address/postalCode],
@cityLife as [Application/app/applicant/addresses/address/city],
@streetLife as [Application/app/applicant/addresses/address/street],
@houseLife as [Application/app/applicant/addresses/address/house],
@corpLife as [Application/app/applicant/addresses/address/corp],
@flatLife as [Application/app/applicant/addresses/address/flat], 

'1' as [Application/app/applicant/phone/type],
@housetel as [Application/app/applicant/phone/number],
'2' as [Application/app/applicant/phone/type],
@worktel as [Application/app/applicant/phone/number],
'3' as [Application/app/applicant/phone/type],
@mobiltel as [Application/app/applicant/phone/number],
--'4' as [Application/app/applicant/phone/type],
'5' as [Application/app/applicant/phone/type],
@contacttel as [Application/app/applicant/phone/number]

FOR	XML Path('afsRequest'),Type)

Viewing all articles
Browse latest Browse all 7251

Trending Articles