Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / помогите отредактировать XML документ в SQL2008 / 3 сообщений из 3, страница 1 из 1
21.05.2014, 19:41
    #38648042
SergeyABelov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите отредактировать XML документ в SQL2008
Добрый день, сообщество.

Работу с XML посредством XQuery только осваиваю, поэтому не сетуйте на уровень вопроса. Провел часа 4 в гугле, но пока не разобрался как решить именно такую задачу.

на входе в SQL процедуру переменная varchar(max), которая в себе содержит xml документ следующей структуры:
Код: xml
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.
<?xml version="1.0" encoding="utf-8"?>
<jm:jupiterML 
  xmlns:jrf="Text1" 
  xmlns:jdt="Text2" 
  xmlns:jru="Text3" 
  xmlns:jpv="Text4" 
  xmlns:jsc="Text5" 
  xmlns:jrev="Text6" 
  xmlns:jre="Text7" 
  xmlns:jrs="Text8" 
  xmlns:jm="Text9" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="Text9 File.xsd">
  <jm:mHeader
    Date="2014-03-19T06:34:29Z">
    <jm:version>0.13</jm:version>
  </jm:mHeader>
  <jm:mBody>
    <jm:Level1>
      <jm:Level2>
        <jru:Level3 
          book="book1"
          author="author1"
          year="2014">
          <jru:Level4
            color="BLC">
          </jru:Level4>
        </jru:Level3>
      </jm:Level2>
      <jm:Level2>
        <jru:Level3
          book="book2"
          author="author2" 
          year="2013">
          <jru:Level4 
            color="GRN">
          </jru:Level4>
        </jru:Level3>
      </jm:Level2>
    </jm:Level1>
  </jm:mBody>
</jm:jupiterML>


мне надо удалить Level2 элементы по условию:

параметр book из элемента Level3 не найден в результате запроса из БД

Код: sql
1.
2.
select 
from dbo.tbl_books



аля left join по условию book_name is null

и попутно еще один вопрос - куда пропадает первая строка документа после конвертации переменной в xml?

Заранее спасибо за ответы.
...
Рейтинг: 0 / 0
21.05.2014, 19:43
    #38648044
SergeyABelov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите отредактировать XML документ в SQL2008
усп,
Код: sql
1.
2.
select book_name
from dbo.tbl_books
...
Рейтинг: 0 / 0
21.05.2014, 21:28
    #38648111
SergeyABelov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите отредактировать XML документ в SQL2008
немного таки разобрался :)
удалить родительский элемент по значению параметра чайлда получилось. даже namespace прикрутил
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
declare
	@book varchar(50)

select
	@book = 'book1'

set @xml.modify('
	declare namespace jm="Text9";
	declare namespace jru="Text3";
	delete /jm:jupiterML/jm:mBody/jm:Level1/jm:Level2[jru:Level3/@book!=sql:variable("@book")]')



фууух

осталось как-то прикрутить значения из таблицы в БД... чет с этим пока туго :(
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / помогите отредактировать XML документ в SQL2008 / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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