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

Откуда:
Сообщений: 54
Всем доброго времени суток.

Обращаюсь с такой проблемой.
Через php подключаюсь к АPI и вывожу данные на страницу.
Данные выводятся как обычный текст, но когда нажимаю посмотреть код страницы то там высветливается XML формат.


И необходимо добавить это в базы данных MSSQL желательно сразу данные по столбцам. но было бы хорошо хотябы в один столбец XML данные, уже через MSSQL парсировать буду..


Пишу подробнее:

Вообщем написал sql Код который парсирует данные и вставляет их в таблицу, но статический по типу:

DECLARE @FileNameDaneSzukajPodmioty nvarchar(255)
    SET @FileNameDaneSzukajPodmioty = N'E:\DaneSzukajPodmioty.xml'
DECLARE @xml XML
DECLARE @xmlload nvarchar (300)
 
CREATE TABLE DaneSzukajPodmioty_TABLE(
    Numer INT NOT NULL,
    Regon [varchar](14),
    Nip [varchar](10),
    StatusNip [varchar](50),
    Nazwa [varchar](2000),
    Wojewodztwo [varchar](200),
    Powiat [varchar](200),
    Gmina [varchar](200),
    Miejscowosc [varchar](200),
    KodPocztowy [varchar](12),
    Ulica [varchar] (200) ,
    NrNieruchomosci [varchar](20) ,
    NrLokalu [varchar] (10) ,
    Typ [varchar] (2) ,
    SilosID [varchar] (20) ,
    DataZakonczeniaDzialalnosci [varchar] (10)
 
CONSTRAINT [DSP_PK] PRIMARY KEY ([Numer])
 
)
 
    SET @xmlload = N'
SELECT @xml = CAST(MY_XML AS XML)
    FROM OPENROWSET(BULK N'''+ @FileNameDaneSzukajPodmioty + ''', SINGLE_BLOB) T(MY_XML)'
    EXEC sp_executesql @xmlload, N'@xml xml output', @xml=@xml output
INSERT INTO DaneSzukajPodmioty_TABLE (Numer, Regon, Nip, StatusNip, Nazwa,Wojewodztwo,Powiat,Gmina,Miejscowosc,KodPocztowy,Ulica,NrNieruchomosci,NrLokalu,Typ,SilosID,DataZakonczeniaDzialalnosci)
SELECT
   ROW_NUMBER() OVER(ORDER BY 1/0) as Numer,
    t.dsp.value('(Regon/text())[1]', 'VARCHAR(14)'),
    t.dsp.value('(Nip/text())[1]', 'VARCHAR(10)'),
    t.dsp.value('(StatusNip/text())[1]', 'VARCHAR(50)'),
    t.dsp.value('(Nazwa/text())[1]', 'VARCHAR(2000)'),
    t.dsp.value('(Wojewodztwo/text())[1]', 'VARCHAR(200)'),
    t.dsp.value('(Powiat/text())[1]', 'VARCHAR(200)'),
    t.dsp.value('(Gmina/text())[1]', 'VARCHAR(200)'),
    t.dsp.value('(Miejscowosc/text())[1]', 'VARCHAR(200)'),
    t.dsp.value('(KodPocztowy/text())[1]', 'VARCHAR(12)'),
    t.dsp.value('(Ulica/text())[1]', 'VARCHAR(200)'),
    t.dsp.value('(NrNieruchomosci/text())[1]', 'VARCHAR(20)'),
    t.dsp.value('(NrLokalu/text())[1]', 'VARCHAR(10)'),
    t.dsp.value('(Typ/text())[1]', 'VARCHAR(2)'),
    t.dsp.value('(SilosID/text())[1]', 'VARCHAR(20)'),
    t.dsp.value('(DataZakonczeniaDzialalnosci/text())[1]', 'VARCHAR(10)')
   FROM @xml.nodes('root/dane') t(dsp)
/*----------------------------------------------------------------------------------------------------------*/
SELECT * FROM DaneSzukajPodmioty_TABLE
/*----------------------------------------------------------------------------------------------------------*/



Файл E:\DaneSzukajPodmioty.xml содержит :


<root>
  <dane>
    <Regon>номер..</Regon>
    <Nip>номер...</Nip>
    <StatusNip />
    <Nazwa>название</Nazwa>
    <Wojewodztwo>название</Wojewodztwo>
    <Powiat>название</Powiat>
    <Gmina>название</Gmina>
    <Miejscowosc>название</Miejscowosc>
    <KodPocztowy>номер..</KodPocztowy>
    <Ulica>улица</Ulica>
    <NrNieruchomosci>номер</NrNieruchomosci>
    <NrLokalu />
    <Typ>название</Typ>
    <SilosID>номер</SilosID>
    <DataZakonczeniaDzialalnosci />
  </dane>
<root>




Но нужно это делать динамический, в этом случае подключаюсь к апи через php и вывожу информацию на страницу, получаю вот что:

<root>
  <dane>
    <Regon>номер..</Regon>
    <Nip>номер...</Nip>
    <StatusNip />
    <Nazwa>название</Nazwa>
    <Wojewodztwo>название</Wojewodztwo>
    <Powiat>название</Powiat>
    <Gmina>название</Gmina>
    <Miejscowosc>название</Miejscowosc>
    <KodPocztowy>номер..</KodPocztowy>
    <Ulica>улица</Ulica>
    <NrNieruchomosci>номер</NrNieruchomosci>
    <NrLokalu />
    <Typ>название</Typ>
    <SilosID>номер</SilosID>
    <DataZakonczeniaDzialalnosci />
  </dane>
<root>

По факту такое же, только необходимо эту информацию через php втянуть в базу данных

Вот вся проблема.


Не знаю верно ли выбрал форум, но если что не так, то извините...=(
12 авг 19, 12:00    [21946990]     Ответить | Цитировать Сообщить модератору
 Re: Api XML из страницы в базу данных  [new]
aleks222
Member

Откуда:
Сообщений: 712
Открою тебе страшную тайну: PHP умеет подключаться к MS SQL и вызывать процедуры/выполнять запросы.
12 авг 19, 12:10    [21947004]     Ответить | Цитировать Сообщить модератору
 Re: Api XML из страницы в базу данных  [new]
Jonsnow
Member

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

Я это понимаю, пробую делать, но не получается:(
Не понимаю как данные со страницы запихнуть в какую-нибудь переменную
12 авг 19, 14:19    [21947182]     Ответить | Цитировать Сообщить модератору
 Re: Api XML из страницы в базу данных  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 28894
Jonsnow
Не понимаю как данные со страницы запихнуть в какую-нибудь переменную
Так спросите на форуме по PHP, при чём тут сиквел?
12 авг 19, 18:05    [21947445]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить