powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Парсинг XML в бд
8 сообщений из 8, страница 1 из 1
Парсинг XML в бд
    #39916317
litrik05
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день! Не получается распарсить xml. Не получается добраться ни до одного элемента, запрос всегда возвращает пустоту. Что я делаю не правильно?

Текст скрипта прилагаю

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
declare @sql_string NVARCHAR(255), @parm_def NVARCHAR(255),@file_name varchar (255),@id_dom INT,
@xml_str VARCHAR(MAX), @xml xml

		select @xml='<?xml version="1.0" encoding="UTF-8"?>
		<?xml-stylesheet type="text/xsl" href="C:\SDBEB\rest_mt535_02.xslt"?><?xml-stylesheet type="text/xsl" href="https://www.besteffortsbank.ru/ru/depobsl/ras_dep/rest_mt535_02.xslt"?>
<CustMessages xmlns="CustMessages" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="CustMessages CustMessages.xsd">
  <AppHdr xmlns="urn:iso:std:iso:20022:tech:xsd:head.001.001.01">
    <Fr>
      <OrgId>
       <Nm>Some Bank</Nm>
        <Id>
          <OrgId>
            <AnyBIC>SOMERUMM</AnyBIC>
          </OrgId>
        </Id>
      </OrgId>
    </Fr>
    <To>
      <OrgId>
      <Nm>111</Nm>
        <Id>
          <OrgId>
            <Othr>
              <Id>SOMEBANKID</Id>
              <SchmeNm>
                <Prtry>XXXBank</Prtry>
              </SchmeNm>
            </Othr>
          </OrgId>
        </Id>
      </OrgId>
    </To>
    <BizMsgIdr>A123321</BizMsgIdr>
    <MsgDefIdr>semt.002.001.02</MsgDefIdr>
    <CreDt>2019-12-25T08:28:27.04Z</CreDt>
  </AppHdr>
  <Document xmlns="urn:iso:std:iso:20022:tech:xsd:semt.002.001.02">
    <CtdyStmtOfHldgsV02>
      <MsgId>
        <Id>R123321</Id>
        <CreDtTm>2019-12-25T11:28:27.447</CreDtTm>
      </MsgId>
      <MsgPgntn>
        <PgNb>1</PgNb>
        <LastPgInd>true</LastPgInd>
      </MsgPgntn>
      <StmtGnlDtls>
        <Ref>R96336</Ref>
        <StmtDtTm>
          <Dt>2019-12-24</Dt>
        </StmtDtTm>
        <Frqcy>
          <FrqcyAsCd>DAIL</FrqcyAsCd>
        </Frqcy>
        <UpdTp>
          <StmtUpdTpAsCd>COMP</StmtUpdTpAsCd>
        </UpdTp>
        <ActvtyInd>true</ActvtyInd>
        <StmtBsis>
          <StmtBsisAsCd>SETT</StmtBsisAsCd>
        </StmtBsis>
      </StmtGnlDtls>
      <AcctDtls>
        <Id>
          <SmplId>
            <Prtry>
              <Id>ANB33333</Id>
            </Prtry>
          </SmplId>
        </Id>
        <FngbInd>true</FngbInd>
        <AcctOwnr>
          <NmAndAdr>
            <Nm>222</Nm>
          </NmAndAdr>
        </AcctOwnr>
      </AcctDtls>
      <SubAcctDtls>
        <Id>
          <SmplId>
            <Prtry>
              <Id>B22111</Id>
            </Prtry>
          </SmplId>
        </Id>
        <FngbInd>true</FngbInd>
        <ActvtyInd>true</ActvtyInd>
      </SubAcctDtls>
      <SubAcctDtls>
        <Id>
          <SmplId>
            <Prtry>
              <Id>T99888</Id>
            </Prtry>
          </SmplId>
        </Id>
        <FngbInd>true</FngbInd>
        <ActvtyInd>true</ActvtyInd>
        <BalForSubAcct>
          <AggtQty>
            <Qty>
              <Unit>1.00000000</Unit>
            </Qty>
          </AggtQty>
          <AvlblQty>
            <Qty>
              <Unit>1.00000000</Unit>
            </Qty>
          </AvlblQty>
          <FinInstrmDtls>
            <Id>
              <ISIN>US123321654</ISIN>
            </Id>
          </FinInstrmDtls>
        </BalForSubAcct>
      </SubAcctDtls>
    </CtdyStmtOfHldgsV02>
  </Document>
</CustMessages>'


    EXEC sp_xml_preparedocument @id_dom OUTPUT, @xml

  SELECT * from OPENXML (@id_dom,'CustMessages/AppHdr/Fr/OrgId')
    with (NM varchar(255) 'Nm' )
   
    EXEC sp_xml_removedocument @id_dom


...
Рейтинг: 0 / 0
Парсинг XML в бд
    #39916336
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
litrik05
Добрый день! Не получается распарсить xml. Не получается добраться ни до одного элемента, запрос всегда возвращает пустоту. Что я делаю не правильно?
Это из за xmlns
...
Рейтинг: 0 / 0
Парсинг XML в бд
    #39916346
litrik05
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvg,А что нужно делать? Когда удалял из тэга CustMessages строку
xmlns="CustMessages" xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="CustMessages CustMessages.xsd", то получалось извлечь информацию, но как извлечь когда xmlns прописан?
...
Рейтинг: 0 / 0
Парсинг XML в бд
    #39916356
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
litrik05, ну можно как-то так
Код: sql
1.
2.
3.
4.
5.
6.
  ;WITH XMLNAMESPACES 
(
    DEFAULT 'CustMessages',
    'urn:iso:std:iso:20022:tech:xsd:head.001.001.01' as u
)
  SELECT n.v.value('./u:Nm[1]', 'nvarchar(max)') from @xml.nodes('//CustMessages/u:AppHdr/u:Fr/u:OrgId') n(v)
...
Рейтинг: 0 / 0
Парсинг XML в бд
    #39916357
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
litrik05,
или
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
DECLARE @rootxmlns varchar(100)
SET @rootxmlns = '<root xmlns:v="CustMessages" xmlns:u="urn:iso:std:iso:20022:tech:xsd:head.001.001.01"/>'

      EXEC sp_xml_preparedocument @id_dom OUTPUT, @xml, @rootxmlns

  SELECT * from OPENXML (@id_dom,'//v:CustMessages/u:AppHdr/u:Fr/u:OrgId')
    with (NM varchar(255) 'u:Nm' )
   
    EXEC sp_xml_removedocument @id_dom
...
Рейтинг: 0 / 0
Парсинг XML в бд
    #39916374
litrik05
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
buser, Получилось! Большое спасибо! Подскажите пожалуйста, где можно об этой теме почитать подробнее, в какую сторону копать?
...
Рейтинг: 0 / 0
Парсинг XML в бд
    #39916407
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
litrik05,

в справке, заголовок

xml, тип данных [SQL Server], XQuery.
...
Рейтинг: 0 / 0
Парсинг XML в бд
    #39916495
litrik05
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владислав Колосов, Спасибо, буду изучать!
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Парсинг XML в бд
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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