Программирование > JavaScript & JScript

JavaScript: сканирование папок

<< < (6/8) > >>

Макс:
Leech

--- Цитировать ---Чёрт, как вставлять отступы? Чтоб хотя бы код можно было прочитать нормально?
--- Конец цитаты ---
[off] если код поместить в теги [ code ] твой код [ / code] то отступы сохранятся [/off]

Макс:
Вот упрощенный пример, того что у меня заработало:

--- Код: ---


// XML который обрабатываем
xmlstr = \'text\';
function viewDocument(){
   xmldoc = new ActiveXObject("Msxml2.DOMDocument");
   xmldoc.loadXML(xmlstr); // xmlstr может содержать URL xml-документа
   parse(xmldoc.documentElement); // Начало разбора документа
}
function parse(root){
   if(root==null) return;
   var i=0;
   var elem;
   if(root.childNodes != null){ // Если вложенные элементы не были определены, то свойство children будет установленно в null
      // Перебор дочерних элементов
      for(i=0;i

Leech:
Ага... работает... с некоторыми изменениями, связанными с тем, что идет подгрузка XML из файла...
вместо
xmldoc.loadXML(xmlstr);
пишем
var xmlsrc = "struct.xml"; xmldoc.load(xmlsrc):
Тока как-то всё странно происходит далее... У меня при входе в функцию parse параметр root равен нулю, что вызывает выход из неё. Хотя если написать обработку ошибок загрузки XML вот в таком виде:

--- Код: ---
function viewDocument(){
if (xmldoc.load(xmlsrc)) {
alert(\'Load XML done\');
}else{
alert(\'Load XML error\');
}
parse(xmldoc.documentElement);
}

--- Конец кода ---

то, после того, как выскочит алерт "Load XML done", дальнейшая обработка происходит без проблем, т.е. параметр root не равен нулю... Интересно получается? Прям какой-то волшебный алерт :)
  Макс, если интересно, могу кинуть по Асе урлу, где это всё выложено...

Макс:

--- Цитировать ---Макс, если интересно, могу кинуть по Асе урлу
--- Конец цитаты ---
нет, спасибою у меня есть занятия поинтереснее.
Поведение конечно странное. У тебя XML well-formed ?
И почитай доку по MSXML по объекту parseError

Еще возможно, это связано с тем что XML не успевает подгрузиться.
Проверяй свойство readyState. Пример из мануала:

--- Код: ---
var xmldoc;
function Load()
{
xmldoc = new ActiveXObject("Msxml2.DOMDocument");
xmldoc.onreadystatechange = CheckState;
xmldoc.load(URL.value);
}
function CheckState()
{
  var state = xmldoc.readyState;
  RESULTS.innerHTML += "readyState = " + state + "
"
  if (state == 4)
  {
    var err = xmldoc.parseError;
    if (err.errorCode != 0)
      RESULTS.innerHTML += err.reason + "
"
    else RESULTS.innerHTML +="success" + "
"
  }
}

URL:



--- Конец кода ---

если readyState == 4 то документ полностью загрузился

Leech:
Разобрался... теперь сделал рекурсивную функцию обхода по дереву:

--- Код: ---
function ViewNode(root){
var i,j;
var ChildNodes = root.childNodes.length;
for(i=0; i

Навигация

[0] Главная страница сообщений

[#] Следующая страница

[*] Предыдущая страница

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии