Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.08.12;
Скачать: CL | DM;

Вниз

получить данные XML   Найти похожие ветки 

 
dimds   (2007-04-25 21:19) [0]

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


 
Johnmen ©   (2007-04-25 21:24) [1]


> есть xml файл:

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


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

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


 
Reindeer Moss Eater ©   (2007-04-26 09:29) [3]

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

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

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

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


 
stud ©   (2007-04-26 09:59) [4]

пытаюсь с помощью 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) [5]

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


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

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

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


 
Reindeer Moss Eater ©   (2007-04-26 10:14) [7]

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

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


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

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

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


 
stud ©   (2007-04-26 11:01) [9]

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

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


 
Reindeer Moss Eater ©   (2007-04-26 11:06) [10]

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


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

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

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


 
Reindeer Moss Eater ©   (2007-04-26 11:11) [12]

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


 
stud ©   (2007-04-26 11:21) [13]

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

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


 
stud ©   (2007-04-26 12:41) [14]

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


 
Reindeer Moss Eater ©   (2007-04-26 12:46) [15]

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



Страницы: 1 вся ветка

Текущий архив: 2007.08.12;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.018 c
15-1184546576
|
2007-07-16 04:42
2007.08.12
Свободные ресурсы


2-1184408740
Knob
2007-07-14 14:25
2007.08.12
Помогите! Как написать простой AI


15-1184528402
ari_9
2007-07-15 23:40
2007.08.12
есть ли хорошая дока по QuantumGrid, кроме стандартного хелпа ?


2-1182503561
Владимир Волобуев
2007-06-22 13:12
2007.08.12
Помогите занести файл *.txt в Базу Данных


3-1177672039
DelphiLexx
2007-04-27 15:07
2007.08.12
DBGridEh1.SumList.RecalcAll приводит к блокировке DBGridEh2