javascript,xml,查询文件以查看tag == 1然后执行某些操作

时间:2014-02-20 04:13:09

标签: javascript xml if-statement xml-parsing

如何修复下面的代码以读取xml文件中的IsPublic数据,以及IsPublic等于1时...打印名称和URL ...否则不执行任何操作。

<script type="text/javascript">
$(document).ready(function () {
    $.ajax({
        type: "GET",
        url: "data.xml",
        dataType: "xml",
        success: xmlParser
    });
});

function xmlParser(xml) {
    $(xml).find("Form").each(function (if "$this.IsPublic"==1) {
        $("#container").append('<div>' + 
            $(this).find("Name").text() + '<br/>' +
            $(this).find("Url").text() +
        '</div>');
    }else{});
}
</script>


//Example data in data.xml

<?xml version="1.0" encoding="UTF-8"?>
<Forms>
   <Form>
      <Name>BRIO Tuscan Grille</Name>
      <Description>Event descript Hosts: Persons name </Description>
      <RedirectMessage>Great! Thanks for filling out my form!</RedirectMessage>
      <Url>brio-tuscan-grille</Url>
      <Email>email@email.com</Email>
      <IsPublic>1</IsPublic>
      <Language>english</Language>
   </Form>
</Forms>

2 个答案:

答案 0 :(得分:0)

您的代码有一些语法错误。修复它们时,它看起来像这样:

function xmlParser(xml) {
    $("Form", xml).each(function () {
        if ($("IsPublic", xml).text()==1) {
            $("#container").append('<div>' + 
                $(this).find("Name").text() + '<br/>' +
                $(this).find("Url").text() +
            '</div>');
        };
    });
};

http://jsfiddle.net/sKy4k/

答案 1 :(得分:0)

Kreozot,你非常接近并给了我需要的方向Thx。 唯一的问题是IsPublic实际上并没有阅读单个项目。 我跳到了你的jsfiddle链接,并提出了这个,现在似乎工作。 再次感谢!

function xmlParser(xml) {
    $("Form", xml).each(function () {
        if ($(this).find("IsPublic").text()==1) {
            $("#container").append('<div>' + 
                                   $(this).find("Name").text() + '<br/>' +
                                   $(this).find("Url").text() +
                                   '</div>');
        };
    });
};