2015-08-18 1 views
2

У меня есть xml-файл с различными узлами и вы хотите получить его первые узлы, а не дочерние. Вот мой код:Как найти только базовые узлы XML-файла

function processXML(event:Event):void { 
    menu_xml = new XML(event.target.data); 
    trace (menu_xml.child("mainmenu")); 
} 

Этот код ничего не отображает. Я использую Flash Professional CC 2015.0.

EDIT: Вот содержание XML:

<?xml version="1.0"?> 
<mainmenu> 

    <home/> 
    <portfolio/> 
    <contact/> 
    <friends> 

     <joe/> 
     <karen/> 
     <bob/> 

    </friends> 

</mainmenu> 

EDIT 2: мне нужно получить только эти строки: дом, портфолио, контакты, друзей.

+0

читайте это: [Чтение внешних документов XML] (http://help.adobe.com/en_US/as3/dev/WS5b3ccc516d4fbf351e63e3d118a9b90204-7e6a.html) – user2836288

+0

привет, спасибо за ваш ответ. У меня нет проблем с загрузкой файла. Я просто не могу получить нужные узлы. – onurcano22

+0

'home',' portfolio' и 'contact' пусты, вы не получите результат от них, если вы не дадите им детей и/или атрибуты. – DodgerThud

ответ

2

menu_xml Ваша переменная является базовым узлом, с помощью вызова menu_xml.child("mainmenu") Вы ищете XML, как это:

<mainmenu>//menu_xml 
    <mainmenu/>//menu_xml.child("mainmenu"); 
</mainmenu> 

Очевидно, что это не существует, и функция возвращает пустую запись XML. Ваш набор данных:

<mainmenu>//menu_xml = new XML(event.target.data); 

    <home/>//menu_xml.child("home"); 
    <portfolio/> //menu_xml.child("portfolio"); 
    <contact/> //menu_xml.child("contact"); 
    <friends>//menu_xml.child("friends"); 

     <joe/> //menu_xml.child("friends").child("joe"); 
     <karen/> //menu_xml.child("friends").child("karen"); 
     <bob/> //menu_xml.child("friends").child("bob"); 

    </friends> 

</mainmenu> 

EDIT: Для того, чтобы получить имена узлов вы должны проходной структуру объекта XML, с помощью цикла через результат children() вы будете иметь возможность использовать функцию name(), чтобы получить имя каждого ребенка корня

for each (var node:XML in menu_xml.children()) 
{ 
    trace(node.name()); 
} 

выход:

home 
portfolio 
contact 
friends 

Для получения дополнительной информации о обходе XML структуры в AS3, я рекомендую AS3 Documentation

+0

спасибо за ваш ответ. так как я могу получить только эти узлы: дом, портфолио, контакт, друзья. – onurcano22

+0

@ onurcano22 см. Редактирование на мой ответ. – CyanAngel

+0

Я не мог понять, что вы имеете в виду. Является ли xml structre затронутым, если я получу имена? Хорошо, что я пытаюсь сделать, это преобразовать файл fla, записанный в AS1 в AS3. Есть несколько строк: ** node_xml.childNodes [i] ** и ** menu_xml.firstChild **. Я редактировал вопрос. еще раз спасибо. – onurcano22

-1

след («данные загружены») + menu_xml);

+0

привет. Я редактировал вопрос. – onurcano22

Смежные вопросы