![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
получить данные 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 файл:
Это кривой хмель файл, т.к. у него нет заголовка.