Как преобразовать XML в HTML таблицу?

Тема в разделе "JavaScript", создана пользователем vave, 8 май 2015.

Модераторы: ZiX
  1. vave

    vave

    Регистр.:
    23 июн 2007
    Сообщения:
    374
    Симпатии:
    15
    Дорогие друзья!
    Помогите пожалуйста!
    Как XML с таким содержанием преобразовать в HTML таблицу?


    Я перерыл весь интернет, нашел кучу вариантов, но все они предназначены для XML с другим типом содержания.

    Буду очень благодарен за помощь!!!
     
  2. vave

    vave

    Регистр.:
    23 июн 2007
    Сообщения:
    374
    Симпатии:
    15
    Мне на одном из форумов, дали такое решение, как его реализовать?

    Код:
    var source = XDocument.Load("source.xml");
    var attributes = source.Root.Element("flight").Attributes();
    
    var header = new XElement("tr", attributes.Select(attr => new XElement("th", attr.Name)));
    var body = new XElement("tr", attributes.Select(attr => new XElement("td", attr.Value)));
    
    var result = new XDocument(new XElement("table", header, body));
    result.Save("result.html");
     
  3. DevOrc

    DevOrc Создатель

    Регистр.:
    5 июн 2014
    Сообщения:
    31
    Симпатии:
    10
  4. zardoz

    zardoz Постоялец

    Регистр.:
    6 май 2008
    Сообщения:
    84
    Симпатии:
    60
    Из вопроса не совсем понятно какая таблица должны быть.
    Вот вариант на чистом яваскрипте который распечатывает параметры первого тега в таблице


    Код:
        var xmldata = '<?xml version="1.0" encoding="utf-8"?>'
        xmldata += '<data>'
        xmldata += '<flight reys_num="***" reys_num_en="***" aircompany="***" aircompany_en="***" aircompany_ext="***" aircompany_ext_en="***" status="отправлен" status_en="departed" terminal="" litera="" litera_en="" typevs_code="B-767-300" typevs_code_en="B763" type="В" type_en="D" view="Ю" view_en="P" bort_number="VPBDI" stay_number="37" date_and_time_plan="27.04.2015 00:20" date_and_time_calc="27.04.2015 00:20" date_and_time_fact="27.04.2015 00:26" delay_time="" delay_code="" delay_code_en="" src_city="Красноярск" src_city_en="Krasnoyarsk" dest_city="Новосибирск" dest_city_en="Novosibirsk" src_port="Красноярск (Емельяново)" src_port_en="Krasnoyarsk (Yemelyanovo)" src_port_cod="ЕМВ" dest_port="Новосибирск(Толмачево)" dest_port_en="Novosibirsk(Tolmachevo)" dest_port_cod="ТЛЧ" etd="27.04.2015 00:20" eta="27.04.2015 00:35" period_start="27.04.2015 00:20" period_end="27.04.2015 00:50" days="••••••7" path="Красноярск (Емельяново) - Новосибирск(Толмачево)" path_en="Krasnoyarsk (Yemelyanovo) - Novosibirsk(Tolmachevo)" />'
        xmldata += '</data>'
        // var xml=xhr.responseXML.parseFromString(xmldata,"text/xml");
        var xml=new DOMParser().parseFromString(xmldata,"text/xml");
    
        var flight = xml.getElementsByTagName('flight')[0];
        html = '<table>'
        for(var i=0; i<flight.attributes.length; i++){
            var attr = flight.attributes[i]
            html += '<tr><td>'+attr.name+'</td><td>'+attr.value+'</td></tr>'
        }
        html += '</table>'
        document.body.innerHTML = html
    
    если xml загружается через аякс то нужно использовать закомментированную строку
     
    latteo нравится это.
  5. d0ber

    d0ber Создатель

    Регистр.:
    21 янв 2008
    Сообщения:
    10
    Симпатии:
    0
    Если быстро и чисто то ручками :)