Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Считывание данных из XML-документа с помощью JavaScript

Сообщения:  [1-10]   [11-12] 

 
 автор: coloboc66   (14.08.2006 в 18:00)   письмо автору
 
   для: AlexSol   (14.08.2006 в 17:38)
 

Извиняюсь- работает! Я сам- тормоз- неправильно XML-документ оформил...

   
 
 автор: AlexSol   (14.08.2006 в 17:38)   письмо автору
 
   для: coloboc66   (14.08.2006 в 17:26)
 

не поверишь - все работает. проверь xml.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Untitled Document</title>
</head>

<body>
<div id='writeroot'></div>
<script type="text/javascript">
function importXML()
{
    if (document.implementation && document.implementation.createDocument)
    {
        xmlDoc = document.implementation.createDocument("", "", null);
        xmlDoc.onload = createTable;
    }
    else if (window.ActiveXObject)
    {
        xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.onreadystatechange = function () {
            if (xmlDoc.readyState == 4) createTable()
        };
     }
    else
    {
        alert('Your browser can\'t handle this script');
        return;
    }
    xmlDoc.load("tt.xml");
    
}

function createTable(){
    var x = xmlDoc.getElementsByTagName('emperor');
    
    var newEl = document.createElement('TABLE');

    newEl.setAttribute('cellPadding',5);
    var tmp = document.createElement('TBODY');
    newEl.appendChild(tmp);
    var row = document.createElement('TR');
    for (j=0;j<x[0].childNodes.length;j++){
        if (x[0].childNodes[j].nodeType != 1) continue;
        var container = document.createElement('TH');
        var theData = document.createTextNode(x[0].childNodes[j].nodeName);
        container.appendChild(theData);
        row.appendChild(container);
    }
    tmp.appendChild(row);
    for (i=0;i<x.length;i++){
        var row = document.createElement('TR');
        for (j=0;j<x[i].childNodes.length;j++){
            if (x[i].childNodes[j].nodeType != 1) continue;
            var container = document.createElement('TD');
            var theData = document.createTextNode(x[i].childNodes[j].firstChild.nodeValue);
            container.appendChild(theData);
            row.appendChild(container);
        }
        tmp.appendChild(row);
    }
    document.getElementById('writeroot').appendChild(newEl);
}
importXML();

</script>

</body>
</html>

   
 
 автор: coloboc66   (14.08.2006 в 17:26)   письмо автору
 
   для: AlexSol   (14.08.2006 в 16:20)
 

Хороший пример, но он не работает. Добрый дядя скрипт выложил, а работающий код не показал. Или я его не нашел.

...
var x = xmlDoc.getElementsByTagName('emperor');
...
for (j=0;j<x[0].childNodes.length;j++)//ошибку ИЕ показывает здесь: x[0]- требуется объект
...

   
 
 автор: AlexSol   (14.08.2006 в 16:20)   письмо автору
 
   для: coloboc66   (14.08.2006 в 15:59)
 

вот что нашел: http://www.quirksmode.org/dom/importxml.html

   
 
 автор: coloboc66   (14.08.2006 в 15:59)   письмо автору
 
   для: RMW   (14.08.2006 в 15:06)
 

Ну не знаю, пока написал так:

xmlObj = xmlDoc.documentElement;
var tableElement = document.createElement("table"); 
    tableElement.border = 1;
for( i=0;i<xmlObj.childNodes.length;i++)
{
//Здесь формируются строки таблицы
}

Наверное есть лучшее решение? Напишите, кто знает. Проблема в том, что я совсем не знаю всех этих childNodes, rowElement, getAttribute(), firstChild и т.д. В моем учебнике по ява-скрипт ничего этого нет. Или это DHTML? Короче- это элементы какого языка и где взять их описание?
to RMW: файл test.xml просто кладу в одну директорию с файлом test.htm Или что вас интересует?

   
 
 автор: RMW   (14.08.2006 в 15:06)   письмо автору
 
   для: coloboc66   (14.08.2006 в 12:35)
 


<html>
<head>
<script>
var xmldoc = new ActiveXObject("msxml");
xmldoc.URL='test.xml';
var tableElement = document.createElement("table");
for(var i=0;i<xmldoc.root.children.length;i++)
{
  if(xmldoc.root.children.item(i).tagName=='IMAGE')
  {
    //Здесь формируются строки таблицы
  }
}
</script>
</head>
<body>
</body>
</html>

Это вроде тока для IE. Просто доп.пример

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

   
 
 автор: AlexSol   (14.08.2006 в 14:11)   письмо автору
 
   для: coloboc66   (14.08.2006 в 14:03)
 

сори, не тот код...

var t:XML = new XML('<a1>1</a1><a1>2</a1><a1>3</a1>');
var aNode:XMLNode = t.firstChild;
while (aNode != null) {
    trace(aNode)
    aNode=aNode.nextSibling
}

   
 
 автор: coloboc66   (14.08.2006 в 14:03)   письмо автору
 
   для: AlexSol   (14.08.2006 в 13:40)
 

А где ж тут цикл while()? Я только for() вижу...

   
 
 автор: AlexSol   (14.08.2006 в 13:40)   письмо автору
 
   для: coloboc66   (14.08.2006 в 13:31)
 

да, на ActionScript. на JavaScript, сори, не знаю :(

   
 
 автор: coloboc66   (14.08.2006 в 13:31)   письмо автору
 
   для: AlexSol   (14.08.2006 в 13:18)
 

Так это код на ActionScript, что-ли? Какой-то синтаксис непривычный...

   

Сообщения:  [1-10]   [11-12] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования