Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2007.08.12;
Скачать: [xml.tar.bz2];

Вниз

получить данные 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.044 c
1-1180540958
DevilDevil
2007-05-30 20:02
2007.08.12
DragDrop для закладок TTabControl-а


9-1152518489
netboy
2006-07-10 12:01
2007.08.12
Вопросик по геймдеву


2-1184826661
pathfinder
2007-07-19 10:31
2007.08.12
Сообщение компилятора Delphi 2006..


2-1184404977
Слава-17
2007-07-14 13:22
2007.08.12
Чтение данных из оверлея


2-1184248152
cava
2007-07-12 17:49
2007.08.12
линии





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский