PDA

Просмотр полной версии : разбор xml


AlexSol
04.05.2006, 11:06
сам xml:

<body>
<a1>...</a1>
<a2>...</a2>
<a3>
<a31>...</a31>
<a32>...</a32>
</a3>
</body>

для этого случая разбираю так:

var story:XML = new XML();
story.ignoreWhite = true;
story.load("load1.xml");
story.onLoad = function() {
if (story.firstChild.hasChildNodes()) {
for (var aNode:XMLNode = story.firstChild.firstChild; aNode != null; aNode=aNode.nextSibling) {
if (aNode.firstChild.hasChildNodes()) {
aNode = aNode.firstChild;
}
content_txt.htmlText += aNode.firstChild.nodeValue;
content_txt.htmlText += "\n";
}
}
};



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

Antares
04.05.2006, 11:33
Метод, скажем, recursiveWalkthrough:

for( var curNode : XMLNode = this.firstChild; curNode != null; curNode = curNode.nextSibling )
{
if( curNode.hasChildNodes() )
recursiveWalkthrough( curNode );
else
trace( curNode );
}


Как поправить, думаю, понятно :) Вообще у меня есть SAX-образный парсер на случай, если надо обрабатывать встречу тэга с таким-то именем так-то, с таким-то -- так-то и т.п.

Можно выложить.

AlexSol
04.05.2006, 12:03
выкладывай! с recursiveWalkthrough( curNode ); не очень понятно - ecursiveWalkthrough в коде не подсвечивается - это случаем не внешняя функция? -вобщем в trace() имею 0.

etc
04.05.2006, 13:10
А функцию ты сам должен написать)