![]() |
|
||||||||||
|
|||||
|
[+4 18.03.08]
|
Есть документ XML:
<?xml version="1.0" encoding="UTF-8"?>
<event>
<camera_name>Window 1</camera_name>
<file>
<file_url>//201.6.107.107/share/1/1/4/001D6A208BFB</file_url>
<date>2008-03-14</date>
<time>18:03:20</time>
<order>1</order>
</file>
</event>
readXML = function(node_1 : XMLNode){
var nodeURL : XMLNode = node_1.firstChild;
var fileURL : String;
fileURL = nodeURL.firstChild.toString(); // получила url адрес изобржния
trace(fileURL);
var nodeDate : XMLNode = node_1.childNodes[1];
var date : String;
date = nodeDate.firstChild.toString(); // получила дату
trace(date);
var nodeTime : XMLNode = node_1.childNodes[2];
var time : String;
time = nodeTime.firstChild.toString(); // получила время
trace(time);
var nodeOrder : XMLNode = node_1.childNodes[3];
var order : String;
order = nodeOrder.firstChild.toString(); // получила порядковый номер
trace(order);
};
var my_xml:XML = new XML ()
my_xml.ignoreWhite = true;
my_xml.onLoad = function (success) {
if (success) {
trace (my_xml);
trace(my_xml.hasChildNodes());
trace(my_xml.firstChild.firstChild.nodeType);
trace(my_xml.firstChild.childNodes[0]);
var node : XMLNode = my_xml.firstChild.childNodes[0];
trace(node.firstChild);
var _node : XMLNode = my_xml.firstChild.childNodes[1];
if(_node.nodeName == 'file'){
if(_node.hasChildNodes()){ //если элемент <file>имеет дочерние узлы, то читаем их
readXML(_node);
}
}
} else {
trace ('Not working');
}
};
my_xml.load ('new.xml');
![]() |
|
|||||
|
[+4 18.03.08]
|
Компилю (или как это называется в AS2 ?), и мне бесконечно выдаются результаты работы кода в output, пока не закрою окно проигрывателя.
|
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Сколько раз проигрывается кадр, в котором написан этот код? )
|
|
|||||
|
Ну вообщето, для этого документа - 1 раз. Но если загрузить другой xml документ, который будет содержать 2 и и более дочерних узлов <file>, то полюбому функцию написать нужно. Я уже переделала. конечно, но всеравно пока еще кака*ка, а ен программа получается))
readXML = function(node_1 : XMLNode): String{
fileURL = node_1.childNodes[0].toString();
date = node_1.childNodes[1].toString;
time = node_1.childNodes[2].toString;
order = node_1.childNodes[3].toString;
return fileURL, date, time, order;
}
var my_xml:XML = new XML ();
my_xml.ignoreWhite = true;
my_xml.onLoad = function (success) {
if (success) {
var v : XMLNode = my_xml.firstChild;//самый важный дочерний узел
if(v.childNodes[1].nextSibling){//выполнить функцию readXML если существует братский узел file
var p : XMLNode = v.lastChild;//последний дочерний узел
index = p.lastChild.firstChild;
trace(index);
}//нашла последний индекс - количество файлов}
if(v.childNodes[1].nodeName == 'file'){
if(v.childNodes[1].hasChildNodes()){ //если элемент <file>имеет дочерние узлы, то читаем их
var fileNode : XMLNode = v.childNodes[1];
trace(fileNode);
readXML(fileNode.firstChild);
}
}
} else {
trace ('Not working');
}
}
my_xml.load ('new.xml');
|
|
|||||
|
[+1 18.03.08]
Регистрация: Nov 2006
Сообщений: 223
|
Я бы сделал вот так:
function parseXML(x:XML) {
var nodeEvent:DOM = new DOM(x.firstChild);
var cameraName:String = DOM.asString(nodeEvent.camera_name);
var nodeFiles:DOM = nodeEvent.file;
for (var i=0; i<nodeFiles.length; i++) {
var nodeFile = nodeFiles[i];
var fileURL:String = DOM.asString(nodeFile.file_url, "");
var date:String = DOM.asString(nodeFile.date, "");
var time:String = DOM.asString(nodeFile.time, "");
var order:Number = DOM.asNumber(nodeFile.order, 1);
trace ("fileURL: "+fileURL);
trace ("date: "+date);
trace ("time: "+time);
trace ("order: "+order);
}
};
var my_xml:XML = new XML();
my_xml.ignoreWhite = true;
my_xml.onLoad = function(success) {
if (success) {
_root.parseXML(this);
} else {
trace('File not found');
}
};
my_xml.load('new.xml');
|
|
|||||
|
[+4 18.03.08]
|
интересненько. Спасибо. У меня так в конце концов вышло
readOrder = function(node_1:XMLNode):String{
order = node_1.childNodes[3].firstChild.toString();
return order;
}
createNewTime = function(node_1:XMLNode):String{
time = node_1.childNodes[2].firstChild.toString();
arr = time.split(":");
newTime = arr[0] + arr[1] + arr[2];
return newTime;
}
createNewDate = function(node_1:XMLNode):String{
date = node_1.childNodes[1].firstChild.toString();
ar = date.split("-");
newDate = ar[0] + ar[1] + ar[2];
return newDate;
}
createNewUrl = function(node_1:XMLNode):String{
fileURL = node_1.childNodes[0].firstChild.toString();
newUrl = slise(fileURL[2], some_url.length);
return newUrl;
}
var my_xml:XML = new XML ();
my_xml.ignoreWhite = true;
my_xml.onLoad = function (success) {
if (success) {
var v : XMLNode = my_xml.firstChild;//самый важный дочерний узел
if(v.childNodes[1].nextSibling){//выполнить функцию readXML если существует братский узел file
var p : XMLNode = v.lastChild;//последний дочерний узел
index = p.lastChild.firstChild;
trace(index);
}//нашла последний индекс - количество файлов}
if(v.childNodes[1].nodeName == 'file'){
if(v.childNodes[1].hasChildNodes()){ //если элемент <file>имеет дочерние узлы, то читаем их
var fileNode : XMLNode = v.childNodes[1];
trace(fileNode);
}
}
} else {
trace ('Not working');
}
}
my_xml.load ('new.xml');
|
![]() |
![]() |
Часовой пояс GMT +4, время: 22:32. |
|
|
« Предыдущая тема | Следующая тема » |
|
|