Не удается отследить данные XML? - PullRequest
1 голос
/ 20 сентября 2011

Здравствуйте, я пытаюсь отследить некоторые данные XML.Я использовал URLLoader и после завершения загрузки я пытаюсь отследить данные XML.Я могу отследить весь файл

trace(xmlData);

, но если я попытаюсь отследить определенный узел, я ничего не получу в своей трассировке

trace(xmlData.captions);

Что я могу сделать неправильно?Все уроки, которые я видел, заставляют это казаться таким простым, но у меня это просто не работает?

////// РЕДАКТИРОВАТЬ ////

Здесь вопрос прояснен.

protected var xmlLoader:URLLoader = new URLLoader();
public var xmlData:XML = new XML();

public function loadXML(_filename:String) {
xmlLoader.addEventListener(Event.COMPLETE, loadIt);
xmlLoader.load(new URLRequest(_filename));          
}

function loadIt(e:Event):void {
xmlData = new XML(e.target.data);
parseData(xmlData);
}
function parseData(input:XML):void {
    trace(xmlData.captions);
}

Если я просто сделаю трассировку (xmlData);Я вижу все хорошо.Когда я добавляю .captions, я получаю пустую трассировку.

вот мой XML-файл

<?xml version="1.0" encoding="utf-8"?>
<captions>
    <cap start="00:01.7">
Narrator: Someone watching a car
    <br/>
    accelerate toward light speed
</cap>
<cap start="00:05.0">
    would see something
    <br/>
    very strange.
</cap>
</captions>

Ответы [ 2 ]

4 голосов
/ 21 сентября 2011

Это потому, что <captions> ваш так называемый корневой узел. Поэтому, когда вы пытаетесь разобрать input.captions, вы на самом деле ищете captions.captions. Разбор дочерних элементов вашего корневого узла может быть выполнен аналогично тому, что вы уже пробовали:

function parseData(input:XML):void 
{    
    // xml list of your cap attributes
    trace(input.cap);

    for (var i : int = 0; i < input.children().length(); i++) 
    {
       // every child node within your captions root node
       trace(input.children()[i]);
    }
}
1 голос
/ 21 сентября 2011

Как сказал @rvmool, captions является корневым узлом, поэтому он не существует в объекте XML.

Кроме того, не забывайте использовать toXMLString(), если вы хотите отслеживать содержимое XML.

trace(xmlData.cap.toXMLString());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...