使用ajax解析具有唯一元素的XML文件

时间:2016-01-25 04:12:33

标签: ajax xml

我目前正在尝试解析具有以下格式的xml文件:

<holidays>
    <holiday1> text </holiday1>
    <holiday2> text </holiday2>
    <holiday3> text </holiday3>
    <holiday4> text </holiday4>
    ...

使用以下代码:

$.ajax({
  url: '<filename>',
  dataType: 'xml',
  success: xmlParser
});

function xmlParser(xml) {
  $('#load').fadeOut();
  $(xml).contents().each(function () {
    $("#holidates").append('<p>' + $(this).text() + '</p>');  
  });
  $(".dates").fadeIn(2000);
}

目前的输出是:

<p>01/13/2016 02/02/2016 12/24/2015 12/24/2015 12/24/2015 12/29/2015 12/30/2015 11/23/2015 01/01/2016 01/26/2016 12/25/2015</p>

我更愿意:

<p>01/13/2016</p>
<p>02/02/2016</p>
<p>12/24/2015</p>
....

有没有办法实现他而不格式化xml文件?该文件是另一个系统的一部分,需要以指定的格式。

非常感谢。

1 个答案:

答案 0 :(得分:0)

根据您的反馈,问题很明显。您获取根元素的文本值。然而,这只是连接其子节点中的所有文本元素。

对于ajax,我不是专业人士,但我们的想法是选择'假日'标签并在该套装上运行'each'。

由于名称中的整数,您的XML结构使其变得比它应该更难。如果您确定'holiday'标签的所有孩子都是'holidayx'标签,那么您可以带走所有孩子。

$(xml).contents().find('holidays').children().each(function () {
    $("#holidates").append('<p>' + $(this).text() + '</p>');  
});

我建议尝试这样的事情。