Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过JavaScript访问XML_Javascript_Jquery_Xml_Ajax - Fatal编程技术网

通过JavaScript访问XML

通过JavaScript访问XML,javascript,jquery,xml,ajax,Javascript,Jquery,Xml,Ajax,我有一个XML文件,正试图从中提取数据。XML文件如下所示 <doc> <str name="name">Rocky</str> <str name="Last_name">balboa</str> <str name="age">42</str> <str name="sex">M</str> <str name="dob">

我有一个XML文件,正试图从中提取数据。XML文件如下所示

    <doc>

    <str name="name">Rocky</str>
    <str name="Last_name">balboa</str>
    <str name="age">42</str>
    <str name="sex">M</str>
    <str name="dob">2012-09-09</str>

   </doc>
   <doc>... </doc>
   <doc>... </doc>
   <doc>... </doc>
我在这里做错了什么?任何人都可以指出。

您应该在使用xml之前对其进行解析(如果ajax调用返回xml,则无需进行解析)。 注意:

  • 标记名:您查找
    元素,而您有
    元素
  • 属性和标记是不同的东西。查找('name')查找一个 标记,而不是名称属性:
  • 有关工作示例(我的xml是一个本地字符串,但您可以轻松地调整脚本)和xml使用示例,请参见

    var xml = "<doc><str name=\"name\">Rocky</str><str name=\"sex\">M</str><str name=\"dob\">2012-09-09</str></doc>",
        xmlDoc = $.parseXML( xml ),
        xml = $( xmlDoc ),
        name = xml.find( "str[name='name']" );
    
    alert (name.text()); 
    
    var xml=“RockyM2012-09-09”,
    xmlDoc=$.parseXML(xml),
    xml=$(xmlDoc),
    name=xml.find(“str[name='name']”);
    警报(name.text());
    
    您可以使用Jquery解析xml来导航dom,例如

    var xml='Rockybalboa42M2012-09-09Rocky1';
    $(文档).ready(函数(){
    xmlDoc=$.parseXML(xml);
    $xml=$(xmlDoc),
    $xml.find('doc')。每个(函数(){
    警报($(this).find('str[name=“name”]')).text()
    })
    })
    
    您的xml格式不正确,也永远不要使用DOM遍历方法来解析依赖于浏览器的xml,请始终使用某种标准解析器,例如在jquery中,您可以使用
    .parseXML
    ,如果成功,请回拨重试

     success : function(data) {
        var xml=data;
        xmlDoc = $.parseXML( xml ),
        $xml = $( xmlDoc );
    
        $.each($xml.find("str"),function(){
        alert($(this).attr("name"));
        });
    }
    

    当您尝试选择以下标记时:

    <str name="name">Rocky</str>
    
    洛奇 不要使用
    $(this.find('name')
    您应该使用
    $(this.find('str[name=“name”])


    对于每个str标记,此错误会出现很多次。

    出现了什么问题。。请详细说明您的问题……如果没有您的帮助,很难检测到错误。请您指出您从何处获得错误,或者未实现的预期行为是什么?Varun。正如你们看到的那个样,警报是空的。
     success : function(data) {
        var xml=data;
        xmlDoc = $.parseXML( xml ),
        $xml = $( xmlDoc );
    
        $.each($xml.find("str"),function(){
        alert($(this).attr("name"));
        });
    }
    
    <str name="name">Rocky</str>