Jquery / XML .find()函数检索xml数据

时间:2012-02-12 00:35:05

标签: xml jquery

这看起来似乎微不足道,但我无法弄清楚如何1)检索XML数据和2)使用这种特定的XML结构在子元素中查找特定内容!

XML:

<UploadResults>
  <Header>
    <Header_ID>1</Header_ID> 
    <PlanYear>2015</PlanYear> 
    <PlanVersion>FP01</PlanVersion> 
  </Header>
  <ErrorSet>
    <Row>
      <Row_Id>0</Row_Id> 
      <Error_String>Validation successful with Zero Errors</Error_String> 
    </Row>
    <Row>
       ...
    </Row>
  </ErrorSet>
</UploadResults>

我的代码:

$.ajax({
    type: "GET",
    url: "testurl",
    dataType: "xml",
    success: function(xml) {
        $(xml).find('UploadResults').each(function(){  
            var errMsg = $(this).find('Error_String').text(); // set variable as content in child 'Error_String'
            $(".validationView").append($(this).text());    // display all xml data on div class
            if (errMsg=="Validation successful with Zero Errors") {
                $("span.proceedBTN").show();
            } 
        });
    }
});

该脚本使用以下XML结构,因此我不确定脚本为什么不从第一个xml结构返回任何数据。 (当然,我会将根名称从UploadResults更改为Rowsets)

<Rowsets>
  <Rowset>
    <Columns>
      <Column Description="Header_Id"/>
      <Column Description="PlanYear"/>
      <Column Description="PlanVersion"/> 
    </Columns>
    <Row>
      <Row_Id>0</Row_Id> 
      <Error_String>Validation successful with Zero Errors</Error_String> 
    </Row>
    <Row>
       ...
    </Row>
  </Rowset>
</Rowsets>

1 个答案:

答案 0 :(得分:2)

您不需要查找上传结果,它是您文档的根源。

$(xml).each(function(){  
    var errMsg = $(this).find('Error_String').text(); // set variable as content in child 'Error_String'
    $(".validationView").append($(this).text());    // display all xml data on div class
    if (errMsg=="Validation successful with Zero Errors") {
            $("span.proceedBTN").show();
    } 
 });

我刚刚运行它,它在这里工作的是JSFiddle that shows it in action