Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Вопрос по Actionscript 2.0 XML
Форумы портала PHP.SU » Разное » Другие языки программирования » Вопрос по Actionscript 2.0 XML

Страниц (1): [1]
 

1. djtimoha66 - 15 Октября, 2015 - 16:12:23 - перейти к сообщению
У меня на Actionscrip 2.0 есть код который читает XML файл:

CODE (htmlphp):
скопировать код в буфер обмена
  1. var myXML:XML = new XML();
  2. myXML.ignoreWhite=true;
  3. myXML.load("22.xml");
  4. myXML.onLoad = function(success){      
  5. if (success){
  6. _root.cool=myXML;
  7. }
  8. }


XML код:

CODE (htmlphp):
скопировать код в буфер обмена
  1. <info>
  2. <track_name>Удача</track_name>
  3. <group_name>бывает</group_name>
  4. <group_id>1</group_id>
  5. <group_url>http://mysite.ru/25053</group_url>
  6. <photo_url/>
  7. <duration>2015</duration>
  8. <is_news>0</is_news>
  9. <rait>0</rait>
  10. </info>


Вопрос, как мне спрятать в XML:

<group_id>1</group_id>
<group_url>http://mysite.ru/25053</group_url>
<photo_url/>
<duration>2015</duration>
<is_news>0</is_news>
<rait>0</rait>


чтоб выводилось только:
Удача
бывает
2. DeepVarvar - 15 Октября, 2015 - 20:47:49 - перейти к сообщению
Вообще в глаза никогда не видел AS2, ну да ладно.

У объекта myXML должен быть метод обхода потомков.
Что-то вроде: myXML.children().each(function(item) {...}
А у XML документа root-элемент всегда один, т.е. в этом первом цикле будет только одна итерация.
Соответственно нужно провалиться еще глубже (цикл в цикле) или написать рекурсивный вызов.
Главная задача -- добраться до элементов track_name и group_name.
Т.е. внутри цикла что-то вроде: if (item.tagName == 'track_name' || item.tagName == 'group_name') {...}
И я так и не понял что надо сделать, удалить лишние узлы (что-то вроде item.parent.removeChild(item)) в этом XML,
или просто достать текстовую инфу из двух этих узлов (что-то вроде resultText += item.innerHTML)?

Кроме того существует гораздо более удобный вариант путешествия по и модификации DOM-дерева -- xpath.
Так вот его я описывать не буду.
Гугли сам.
Но в начале будет что-то вроде: myXML.onLoad = function(success){ var myXPath:XPath = new XPath(myXML); ...

 

Powered by ExBB FM 1.0 RC1