Главная страница
    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.048 c
2-1184152263
Slimer
2007-07-11 15:11
2007.08.12
Шифрование строки


15-1184052489
Krants
2007-07-10 11:28
2007.08.12
мистическая тройка


3-1177453476
TTable
2007-04-25 02:24
2007.08.12
Как получить указатель на строку в Table1.Fields[2].AsString ?


2-1184237695
deras
2007-07-12 14:54
2007.08.12
Как сгенерить случайное число целого типа...


2-1184230213
viper75
2007-07-12 12:50
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский