Приложение 2

JavaScript сценарий, обрабатывающий XML-документ, приведенный в приложении 1


<HTML>

<head>

<title></title>

<script language="javascript">

<!--

var xmldoc = new ActiveXObject("msxml");

var xmlsrc = "http://localhost/xml/journal.xml";

function viewTitle(elem){  // Отображение заголовка документа, определяемого элементом <title>

this.document.writeln('<center><table width="100%" border=0><tr><td width="100%" align="center" bgcolor="silver"><b><font color="black">'+elem.text+'</font></b></td></tr></table></center><br>');

}

function viewContactsList(elem){ // Отображение содержимого дочерних элементов <author-list>

this.document.writeln('<tr><td align="right" colspan="2" bgcolor="gray"><b><font color="white">Наши реквизиты</font></b></td></tr>');

this.document.writeln('<tr><td bgcolor="silver" colspan="2"><center><table width="80%" border=0>');

 if(elem.type==0){

  if(elem.children!=null){

    this.document.writeln('<tr><td colspan=2 width="100%"> </td></tr>');

     var cur_item=elem.children.item("address");

     if(cur_item!=null){

      this.document.writeln('<tr><td><font color="blue">Адрес</font></td><td align="right" ><b><font color="red">'+cur_item.text+'</font></b></td></tr>');

     }

     var cur_item=elem.children.item("tel",0);

     if(cur_item!=null){

      this.document.writeln('<tr><td><font color="blue">Телефон</font></td><td align="right" ><b><font color="red">'+cur_item.text+'</font></b></td></tr>');

     }

     var cur_item=elem.children.item("email");

     if(cur_item!=null){

      this.document.writeln('<tr><td><font color="blue">E-Mail</font></td><td align="right"><b><font color="red">'+cur_item.text+'</font></b></td></tr>');

     }

     var cur_item=elem.children.item("url");

     if(cur_item!=null){

      this.document.writeln('<tr><td><font color="blue">URL</font></td><td align="right"><b><font color="red">'+cur_item.text+'</font></b></td></tr>');

     }

    }

 }

this.document.writeln('<tr><td colspan=2 width="100%"> </td></tr>');

this.document.writeln('</table></center></td></tr>');

}

function viewAuthorsList(elem){	// Отображение содержимого дочерних элементов <author-list>

this.document.writeln('<tr><td align="right" colspan="2" bgcolor="gray"><b><font color="white">Наши авторы</font></b></td></tr>');

this.document.writeln('<tr><td bgcolor="silver" colspan="2"><center><table width="80%" border=0>');

 if(elem.type==0){

  if(elem.children!=null){      

   for(i=0;i<elem.children.length;i++){

    var cur_author = elem.children.item("author",i);

    this.document.writeln('<tr><td colspan=2 width="100%"> </td></tr>');

    if(cur_author.children!=null){

     var cur_item=cur_author.children.item("firstname");

     if(cur_item!=null){

      this.document.writeln('<tr><td><font color="blue">Имя</font></td><td align="right" ><b><font color="red">'+cur_item.text+'</font></b></td></tr>');

     }

     var cur_item=cur_author.children.item("lastname");

     if(cur_item!=null){

      this.document.writeln('<tr><td><font color="blue">Фамилия</font></td><td align="right" ><b><font color="red">'+cur_item.text+'</font></b></td></tr>');

     }

     var cur_item=cur_author.children.item("email");

     if(cur_item!=null){

      this.document.writeln('<tr><td><font color="blue">E-Mail</font></td><td align="right"><b><font color="red">'+cur_item.text+'</font></b></td></tr>');

     }

    }

   }

  }   

 }

this.document.writeln('</table></center></td></tr>');

}

function viewError(){

this.document.writeln('<center><hr>Error was detected');

}

function parse(root){

if(root==null) return;

 var i=0;

 var elem;                       

if(root.children!=null){	// Если вложенные элементы не были определены, то свойство children будет установленно в null

this.document.writeln('<center><table width="80%" border=0><tr><td>');

                               // Перебор дочерних элементов

 for(i=0;i<root.children.length;i++){

  elem=root.children.item(i);

  if(root.children.item(i).tagName=="TITLE"){

    viewTitle(elem);            // Разбор подэлементов <title>

  }

  if(elem.tagName=="CONTACTS"){

    viewContactsList(elem);     // Разбор подэлементов <contacts>

  }

  if(elem.tagName=="AUTHORS-LIST"){

    viewAuthorsList(elem);      // Разбор подэлементов <authors-list>

  }  

 }

this.document.writeln('</td></tr></table>');

  }   

}

function viewDocument(){

xmldoc.URL = xmlsrc;     // Загрузка XML документа

this.document.writeln('<body bgcolor="white">');

parse(xmldoc.root);      // Начало разбора документа

this.document.writeln('</body>');

}

// Генерирование страницы

viewDocument();

//-->

</script>

</head>

Назад | Содержание | Вперед

Используются технологии uCoz