Xml / html格式和输出

时间:2017-02-04 10:55:35

标签: javascript html xml

嗨我仍然对javascript / html / xml很新,但是要理解这些概念,并且可以做一些基本的编码。

我正在尝试获取一些xml数据,并将这些数据放入一些html表中,这一切都有效,但数据没有被放到单独的表行中。我知道我可能必须创建数组,但我的代码是通过网络,我坚持如何做到这一点。所以我正在寻找javascript / html的一些帮助。

它正常工作,但显示效果不正确,因为每个标题都在一行上,我需要将它放在不同的行上。

我用Google搜索,尝试了各种选项,但没有运气。

javascript函数:

function myGetEventsXmlData() {
    $.ajax({
        type: "GET",
        url: "data/event_list.xml",
        dataType: "xml",
        success: xmlEventParser
    });
}

function xmlEventParser(xml) {
$(xml).find('event_list').each(function () {
    var $show = $(this);
    var data = {
        title: $show.find('title').text(),
        name: $show.find('name').text(),
        severity: $show.find('severity').text(),

    };
    var row = $('<tr />');
    for (var prop in data) {
        $('<td>' + data[prop] + '</td>').appendTo(row);
    }

    $('#eventtable').append(row);
});
}  

这是我试图解析的xml文件

<?xml version="1.0" encoding="UTF-8"?>
<event_list>
    <event>
        <id>9199acca-df09-71e6-1946-c0a800820000</id>
        <title>client.createConnection(691) - AMQ214016: Failed to create netty connection </title>
        <name>test1.system.com</name>
        <state>open</state>
        <severity>critical</severity>
        <priority>medium</priority>
        <category>Internal</category>
     </event>
     <event>
         <id>9199acca-df09-71e6-1946-c0a800820000</id>
         <title>ssh login failed </title>
         <name>test2.system.com</name>
         <state>open</state>
         <severity>major</severity>
         <priority>medium</priority>
         <category>OS</category>
     </event>
     <event>
         <id>9199acca-df09-71e6-1946-c0a800820000</id>
         <title>Oracle Connection OK </title>
         <name>test3.system.com</name>
         <state>open</state>
         <severity>normal</severity>
         <priority>medium</priority>
         <category>Database</category>
     </event>
 </event_list>

html代码部分

              <table id="eventtable" table=table style="width:100%"               align="center">
            <tr>
                <th>Title</th>
                <th>Name</th>
                <th>Severity</th>

            </tr>
        </table>

数据出现在该部分但是它们全部在一起而不是单独的行,我想要的是数据在每个新数据的新行上,而不是在一行上。

关于如何做到这一点的任何想法都会很棒。

1 个答案:

答案 0 :(得分:1)

$(xml).find('event_list').each(function () {

您正在遍历每个<event_list>(其中只有一个)。

您应该遍历每个<event>