PDA

Просмотр полной версии : XML, получение определенных данных


InfMag
12.06.2006, 13:28
Вот имеется XML файл:

<?xml version="1.0" encoding="utf-8" ?>

<tg1>

<item id = "1">
<id2>1</id>
<text1>qwe</text1>
<text2>qwe</text2>
</item>

<item id = "2">
<id2>2</id>
<text1>qwe</text1>
<text2>qwe</text2>
</item>

<item id = "3">
<id2>3</id>
<text1>qwe</text1>
<text2>qwe</text2>
</item>

</tg1>

<tg2>
<sp>qwerty12345</sp>
</tg2>

Вот я только знаю, что можно выбирать из XML так:
XML_VAR.firstChild.firstChild.firstChild.nodeValue
Но как можно обращаться к полям по именам, ну вобщем использовать XML, который я написал?

InfMag
12.06.2006, 13:30
Тоесть мне допустим надо будет получить количество всех ITEM тегов, чтобы через цикл нормально прочитать весь массив...

etc
12.06.2006, 13:33
начнем с того, что хмл у тебя невалидный

childNodes тебе в помощь

InfMag
12.06.2006, 13:35
2 __etc
Так, а теперь давай по русски, я сижу в ветке для новичков и если честно, то то, что ты мне сказал мне ничего не дало, я ничего не понял.

MINASTIS
12.06.2006, 13:39
По ходу он хотел тебе сказать в массив скинь значения childnodes. Это тебе даст шанс узнать "имена". А так в общем по ходе в ХМЛ файле все узлы должны быть в оном большом узле.

etc
12.06.2006, 13:47
childNodes -- массив со ссылками на дочерние элементы узла. Он есть у каждого узла и может быть пустым, если дочерних узлов нет. А хмл твой является невалидным, т.е. неверен с точки зрения хмл. Например, открывающий и закрывающий теги должны быть одинаковы по имени, а у тебя разные.

MINASTIS
12.06.2006, 13:52
<id2>2</id> вот это вот что такое, объясни?! Такого не может быть! Надо одинаковые имена! :D

InfMag
12.06.2006, 14:07
2 MINASTIS
Ой! Это мой косяк! :) Надо было:
<id2>2</id2>

InfMag
12.06.2006, 14:08
Как никак, а суть вопроса еще не раскрыта...

MINASTIS
12.06.2006, 14:19
Сказано же создай массив блин и слей в него childnodes.

iNils
12.06.2006, 14:25
trace (имяТвоегоXML.firstChild.childNodes.length);

etc
12.06.2006, 15:59
Minastis, прекрати давать вредные советы и не надо неверно толковать мои слова!

Homo Sapiens
12.06.2006, 19:09
Так, между прочим, в XML документе допустим только один корневой узел.
Узнать имя можно через nodeName. А вообще хелп рулит :)

iNils
12.06.2006, 19:12
Так, между прочим, в XML документе допустим только один корневой узел.
Узнать имя можно через nodeName. А вообще хелп рулит :)
В спецификации да, но флешу на это пока (еще) пофиг.

MINASTIS
12.06.2006, 19:46
2 _etc не буду не буду :) мне просто делать нечего было несколько часов вот я и толковал.

InfMag
12.06.2006, 20:50
Хм. Мне конечно пофиг если можно нормально работать и без имен :) нафиг тогда мне получается с именами заморачиваться... надо так попробовать...

iNils
12.06.2006, 20:52
Хм. Мне конечно пофиг если можно нормально работать и без имен :) нафиг тогда мне получается с именами заморачиваться... надо так попробовать...
Чтобы читая твой xml, ты сам или заказчик не путался, что сье значит.

InfMag
12.06.2006, 20:54
Просто я хотел обращаться к доку по именам, типа:

XML.childNodes["tg1"].childNodes["item"]["1"].childNodes["id2"].nodeValue

etc
12.06.2006, 20:57
Для этого существует idMap и параметр id у тегов

iNils
12.06.2006, 20:58
Для этого существует idMap и параметр id у тегов
Угу, только Id то уникальный :)

InfMag
12.06.2006, 20:58
2 __etc
Ну вот серьезно, ты думаешь я что-то из этого понял? :) Как всегда хочу пример.

etc
12.06.2006, 21:02
Пример есть в хелпе. Ключевые слова в поиске я тебе назвал. Я написать не могу, т.к. пишу с мобильного. Сделай что-нибудь сам, например нажми ф1 и кнопку поиска