PDA

Просмотр полной версии : Чтение из Xml(из значения узла)


Haiat
28.09.2008, 21:35
Добрый вечер.

Всю жизнь засовывал информацию в атрибуты тега. Но сейчас мне необходимо считать значение тэга.

<value date="1222438627437">95</value>

Работает
_root.data_xml.childNodes[0].childNodes[1].childNodes[_root.id-1].lastChild.childNodes[t].attributes.price

Не работает. трейс выдает null
_root.data_xml.childNodes[0].childNodes[1].childNodes[_root.id-1].lastChild.childNodes[t].nodeValue

Что может быть?

Спасибо

Mur4ik
28.09.2008, 22:03
покажите Ваш хмл, скорее всего тип узла не строковый
попробуйте протрейсить
trace(_root.data_xml.childNodes[0].childNodes[1].childNodes[_root.id-1].lastChild.childNodes[t].nodeType)

если выдаст "1", значить тип узла не строковый
если "3" тогда где-то еще ошибочка

Haiat
28.09.2008, 22:15
выдает 1.каким образом сделать его строковым?

Спасибо

Mur4ik
28.09.2008, 22:20
изменить структуру хмл
попробуйте заключить этот узел в еще один
а вообще почитайте документацию, так будет для Вас же полезней :)

Haiat
28.09.2008, 22:24
<?xml version="1.0" encoding="UTF-8"?>
<priceofword>

<languages>
<language id="1">
<name>English</name>
<icon type="default">[!CDATA[lang/eng.jpg]]</icon>
<icon type="mousover">[!CDATA[lang/eng_1.jpg]]</icon>
</language>
<language id="2">
<name>Russian</name>
<icon type="default">lang/rus.jpg</icon>
<icon type="mousover">lang/rus_1.jpg</icon>
</language>
</languages>

<words>
...................


Структура очень жесткая,в плане что флэш должен быть подстроен под xml. Но если это единственный способ,то что нужно сделать?

Mur4ik
28.09.2008, 23:09
вот так будет работать
_root.data_xml.childNodes[0].childNodes[1].childNodes[_root.id-1].lastChild.childNodes[t].firstChild.nodeValue

Wolsh
28.09.2008, 23:48
Просто запомни что CDATA - это тоже тег. То есть в результате получается еще один узел. Из этого узла нужно брать обязательно nodeValue, которое и будет строкой! А вот из простого текстового узла, как во втором Language, nodeValue будет возвращать null, потому что у текста нет никакого Value. Нужно брать просто firstChild.
(Интересно всё же, что ты называешь жестким xml, если один узел у тебя с узлом CDATA, другой просто текст...)

Haiat
29.09.2008, 02:46
Спасибо всем большое!
CDATA я ставил чисто для проверки. он не нужен.