Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

получить данные XML [MSSQL]


dimds ©   (2007-04-25 21:19:00) 

есть xml файл:
<root>
<zapis atr1="12" atr2="34" />
</root>
как можно с помощью openxml на sql2000 получить строку вида
zapis,12,34


Reindeer Moss Eater   (2007-04-26 12:46:00) [1]

Если это так, смотри в сторону xsl и метода transform.
Если этого нет, грузи свой xml в msxml.
Там и имена нодов получить можно и трансформацию в готовый вид реализовать.


stud   (2007-04-26 12:41:00) [2]

все что нашел - можно получить из таблицы которую создает openxml имена, но тогда нужно делать два запроса - в первом получать все данные а во втором вытаскивать нужное имя и апдейтить таблицу с данными, но хотелось одним запросом....


stud   (2007-04-26 11:21:00) [3]

Reindeer Moss Eater ©   (26.04.07 11:11) [12]
Либо плохо искал. либо не надо так коряво именовать узлы.

там вроде обращение к элементам идет с помощью xpath, все атрибуты нормально вытащил, но вот как получить именно имя не нашел.
а узлы... не от меня зависит.


Reindeer Moss Eater   (2007-04-26 11:11:00) [4]

Либо плохо искал. либо не надо так коряво именовать узлы.


stud   (2007-04-26 11:09:00) [5]

Reindeer Moss Eater ©   (26.04.07 11:06) [10]
В openxml нет свойств возвращающих имя узла?

не нашел ничего на эту тему.


Reindeer Moss Eater   (2007-04-26 11:06:00) [6]

Ну сам узел у тебя есть. В чем проблема?
В openxml нет свойств возвращающих имя узла?


stud   (2007-04-26 11:01:00) [7]

Reindeer Moss Eater ©   (26.04.07 10:14) [7]
Все непосредственные дети рута, у которых есть оба атрибута

вот грубо говоря нужно получить имя ребенка рута, у которого есть указаный набор атрибутов


stud   (2007-04-26 10:41:00) [8]

Reindeer Moss Eater ©   (26.04.07 10:05) [6]
Ну а по какому критерию тебе надо искать этот узел

известно что он находится на втором уровне
и практически все(


Reindeer Moss Eater   (2007-04-26 10:14:00) [9]

Все непосредственные дети рута, у которых есть оба атрибута

'/root/*[@atr1][@atr2]'


Reindeer Moss Eater   (2007-04-26 10:05:00) [10]

но, подразумевается что названия zapis заранее не известно

Ну а по какому критерию тебе надо искать этот узел - мы что, должны здесь все догадаться?


stud   (2007-04-26 09:59:00) [11]

пытаюсь с помощью xpath.
но, подразумевается что названия zapis заранее не известно, точно известно что оно находится на втором уровне.
если быть точнее то файл может содержать записи:
.....
<zapis atr1="12" atr2="34" />
<zapis1 atr1="12" atr2="34" />
<zapis2 atr1="12" atr2="34" />
......
и соответственно нужно получить
zapis,12,34
zapis1,12,34
zapis2,12,34
с атрибутами все нормально проблем нет, вот получить название узла где они находятся....


stud   (2007-04-26 09:59:00) [12]

выходил вчера из дома, поэтому логин другой)


Reindeer Moss Eater   (2007-04-26 09:29:00) [13]

Если поддерживается XPath, то получить суммой значений выражений XPath

'/root/zapis[0]' || ',' || '/root/zapis[0]/@atr1' || ',' ||  '/root/zapis[0]/@atr2'

Если поддерживается трансформация  с помощью xsl, то тоже примерно так же.

Если ни то ни другое - то скакать по структуре через списки чайлд узлов и атрибутов и склеивать значения.


dimds   (2007-04-25 21:34:00) [14]

заголовок в данном случае не главное, важно получить данные в нужном виде.
если так нужен полный файл со всеми прибамбасами, завтра выложу)


Johnmen   (2007-04-25 21:24:00) [15]


> есть xml файл:

Это кривой хмель файл, т.к. у него нет заголовка.


Наверх

Титульная страница Поиск, карта сайта Написать письмо