0

我得到了一个看起来像这样的 XML:

<state1>
<county>
<villager>John Smith</villager>
<income>3000</income>
</county>
<county>
<villager>John Smith</villager>
<income>3500</income>
</county>
<county>
<villager>Peter Smith</villager>
<income>3100</income>
</county>
<county>
<villager>Paul Smith</villager>
<income>3200</income>
</county>
</state1>

<state2>
. .
</state2>

我现在使用这些代码将信息解析为 HTML 表:

<script>
$(document).ready(function(){
 $.ajax({
  type: "GET",
  url: "election2008.xml", 
  dataType: "xml",
  success: function(xml) {
   $(xml).find('county').each(function(){   
    var Col0 = $(this).find('villager').text();
    var Col1 = $(this).find('income').text();
    $('<tr></tr>').html('<td>'+Col0+'</td><td>'+Col1+'</td>').appendTo('#chart');
   });
  }
 });
});
</script>

我只想检索 State1 中的数据并将它们输出到 HTML。我怎么做?

目前我的脚本解析所有信息并将它们放在一个大 HTML 表中,但我只想读取 state1 数据。是否可以?谢谢

4

2 回答 2

0

如果我理解正确 - 您想创建每个状态为 1 的新 HTML 文件。

您可以使用 PHP 创建 html 文件,请看这里:http ://www.tizag.com/phpT/filewrite.php

然后,当您在 AJAX 函数中解析 XML 时,将状态数据发送到 PHP 文件,以便为您编写一个包含该表的新页面。

编辑:

哦,你的意思是这样的:

success: function(xml) {
    var stat1 = $(xml).find('state1');  
    $(stat1).find('county').each(function(){    
        var Col0 = $(stat1).find('villager').text();
        var Col1 = $(stat1).find('income').text();
        $('<tr></tr>').html('<td>'+Col0+'</td><td>'+Col1+'</td><td>'+Col2+'</td>').appendTo('#chart');
    });
于 2013-03-20T06:37:01.570 回答
0

如果您唯一关心的是捕获 state1,那么我们可以像这样检查数组的索引:

success: function(xml) {
    $(xml).find('county').each(function(i){ <--- **i** is the index
        if( i == 0 ){ //<--- if index is zero, which is state 1
            var Col0 = $(this).find('villager').text();
            var Col1 = $(this).find('income').text();
            $('<tr></tr>').html('<td>'+Col0+'</td><td>'+Col1+'</td><td>'+Col2+'</td>').appendTo('#chart');
        }
    });
  }

或者,您可以通过简单地请求第一个

var state1 = $(xml).find('state1').find('county').eq(0),
    Col0 = state1.find('villager').text(),
    Col1 = state1.find('income').text(),
    Con2 = state1.find('something').text();

等等等等。

如果要根据请求的文件名获取项目,可以使用以下方法:

//get the url pathname
var url = window.location.pathname;

//split the pathname on the last occurence of a `/`, which should be superceded by state1.html or state2.html, etc..
var state = url.substring(url.lastIndexOf('/'));

Now let's get the county that we want....
var countyNum = state.match(/[0-9]/)[0];

//and now the corresponding county within the state...

var county = $(xml).find('state').eq(0).find('county').eq(countyNum);
于 2013-03-20T07:03:30.287 回答