Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   помогите со скриптом (https://javascript.ru/forum/misc/9251-pomogite-so-skriptom.html)

Verhal 06.05.2010 14:44

помогите со скриптом
 
у меня есть XML документ:
<?xml version="1.0"?>
<root>
<localhost name="disk" exc="loch" ind="0">
</localhost>
</root>

как мне сделать чтобы из этого документа сформировалось вот это причем кроссбраузерно:
<span id="значение ind"><img src="./значение exc" width="32" height="32" alt="" /><br><span>значение name</span></span>

Помогите плиз!!!!!

Verhal 06.05.2010 15:24

пытался сделать таким образом но не IE и FF не работает:
<script 
type="text/javascript">
function importXML(){ if (document.implementation && document.implementatio
n.createDocument){ xmlDoc = document.implem
entation.createDocument("", "", null);xmlDoc.onload = createTable;} else if (window.ActiveXObject){ xmlDoc = new ActiveXObjec
t("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(){
localh = xmlDoc.getElementsByTagName("localhost");
exc = xmlDoc.getAttribute("exception");
LName = xmlDoc.getAttribute("name");
Lind = xmlDoc.getAttribute("ind");
content='<span id="'+Lind+'" class="" height="48" width="48"><img src="./'+exc+'.png" height="32" width="32" class="" alt=""/><span>'+LName+'</span></span>';
document.all.writeroot.innerHTML=content;}
</script>

в чем проблема?

DooMer 06.05.2010 15:44

тынц

exec 06.05.2010 16:49

jQ

$.get(url, function (xml) {
var data = $('<div/>'); data.html(xml);
data = data.find('localhost');
exc = data.attr('exc'), _name = data.attr('name');
});

Verhal 07.05.2010 15:53

а можно как нибудь это сделать не прибегая к фреймворк-ам?

DooMer 07.05.2010 15:55

Цитата:

Сообщение от Verhal (Сообщение 54510)
а можно как нибудь это сделать не прибегая к фреймворк-ам?

написать парсер ХМЛя, либо выдрать функцию из JQ

Verhal 07.05.2010 16:46

можете превести пример?

Gozar 07.05.2010 16:59

Цитата:

Сообщение от Verhal (Сообщение 54510)
а можно как нибудь это сделать не прибегая к фреймворк-ам?

Чем это вам фреймворки неугодили?

Gozar 07.05.2010 17:01

Цитата:

Сообщение от Verhal (Сообщение 54521)
можете превести пример?

чего пример вы просите, пример выдирания функции из jquery?

Как насчёт того чтобы палец о палец ударить самому?

Verhal 08.05.2010 22:58

помогите найти проблему в парсинге xml-я
вот мой js код:
function getXMLDocument(url)
{
    var xml;
    if(window.XMLHttpRequest)
    {
        xml=new window.XMLHttpRequest();
        xml.open("GET", url, false);
        xml.send("");
        return xml.responseXML;
    }
    else
        if(window.ActiveXObject)
        {
            xml=new ActiveXObject("Microsoft.XMLDOM");
            xml.async=false;
            xml.load(url);
            return xml;
        }
        else
        {
            alert("Загрузка XML не поддерживается браузером");
            return null;
        }
}
//--------------------
function parseGismeteoXML(url, template)
{
    var output="";
    var xml=null;
    try
    {
        xml=getXMLDocument(url);
        if(!xml) return "<font color='red'>Нет данных</font>";
    }
    catch(e)
    {
        return "<font color='red'>"+e.message+"</font>";
    }
    var lhs=xml.getElementsByTagName("localhost");
    var lh=null;
    if(lhs)
    for(var i1=0; i1<lhs.length; i1++)
    {
        lh=lhs[i1];
        var lh_attr = getAttributes(lh);
	  var  t_lh = template.lh.replace(/\{name\}/g, lh_attr['name']).replace(/\{ind\}/g, lh_attr['ind']).replace(/\{exc\}/g, lh_attr['exc']);
	  output+=t_lh;
    }
    return output;
}
//--------------------
function drawGismeteoInformer(url, div, template)
{
    var div=document.getElementById(div);
    if(!div) return;
    var output=parseGismeteoXML(url, template);
    div.innerHTML=output;
}


вот мой html код:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
  <title>Text XML</title>
  <script type="text/javascript" src="FS-Web.js"></script>
  <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
</head>

<body>
<div id="forecast"></div>
<script type="text/javascript">
    var template={"lh":"Имя локального диска {name}, индекс {ind} и формат {ecx}"
    };
    drawGismeteoInformer("tt.xml", "forecast", template);
</script>
</body>

</html>


в IE и FF на экран ничего не выводит! плиз помогите!


Часовой пояс GMT +3, время: 00:44.