繁体   English   中英

如何使用JQuery解析XML文件以更新HTML表

[英]How To Parse XML Files Using JQuery To Update A HTML Table

我需要解析将采用某种格式的XML文件,然后计算主队或客队是否获胜,然后将3点或1点分配给由结果确定的HTML表格(总分列),我更喜欢使用jQuery为此。

results.xml代码:

<?xml version="1.0"?>
<title>Results</title>
  <results>
    <result id="1234">
      <hometeam>
        <name>Roma</name>
        <score>2</score>
      </hometeam>
      <awayteam>
        <name>Lazio</name>
        <score>0</score>
      </awayteam>
  </result>
</results>

HTML代码:

<table id="table">
<th>Team</th>
<th>Played</th>
<th>Won</th>
<th>Drawn</th>
<th>Lost</th>
<th>Total Goals</th>
<th>Overall Points</th>

<tr>
<td>Roma</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td>Lazio</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td>Inter</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td>Milan</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>
</table>

jQuery代码:

function showData() {
$.ajax({
type: "GET",
url: "results.xml",
dataType: "xml",

到目前为止,我已经掌握了JQuery代码。

计算出来的结果会去哪儿?

if (hometeam score > awayteam score)
{ add 3 to hometeams Overall Points}
else if (hometeam score = awayteam score)
{ add 1 to hometeams Overall Points and add 1 to awayteams Overall Points}
else 
{ add 3 to awayteams Overall Points}

我将如何评估主队和客队得分并在HTML表格中更新正确的球队?

谢谢您的帮助。

当然,您可以使用JavaScript来解析xml,例如使用jQuery的parseXML函数。 http://api.jquery.com/jQuery.parseXML/

但是,这可能很慢,因为最终用户每次访问页面时都必须解析一个大文件。 XML文件往往很庞大。

相反,我会先将XML转换为JSON或数据库行。

PHP具有大多数发行版附带的名为Simple XML Parser的库。 该界面确实非常简单。 Python还具有一个称为lxml的丰富库来解析XML。

当然,如果您真的想用javascript解析XML,那么我认为这个问题很有帮助。 使用jQuery和HTML在XML数据之间分页

当您比较ajax调用时

$.ajax({
type: "GET",
url: "results.xml",
dataType: "xml",

jquery文档中的示例中,您会看到缺少的内容。 您的通话如下所示:

$.ajax({
  url: "results.xml",
  dataType: "xml",
  type: "GET",
  success: function(data){
    // do something with data
  }
});

您需要指定一个函数,如果成功返回数据,该函数将被调用。 在上面的示例中,该函数是一个匿名函数。 您还可以使用具有以下名称的普通函数:

function handle_success(data){
    // do something with data
}

$.ajax({
  url: "results.xml",
  dataType: "xml",
  type: "GET",
  success: handle_success
});

但是要当心AJAX中的A:它代表异步。 这意味着:您的成功功能将在以后被调用,甚至永远不会被调用。 ajax调用后,程序的其余部分将照常继续。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM