为什么Jquery parseXML不起作用

Why is Jquery parseXML not working?

本文关键字:不起作用 parseXML Jquery 为什么      更新时间:2023-09-26

我是xml新手,我正在尝试使用JQuery parseXML()搜索xml文件。我制作了下面的代码来搜索 xml 文件中的<name>标签并输出每个name它的值。

当我运行代码时,我收到以下 2 个错误:

  syntaxisfout         
  index.html:1:1
  Error: Invalid XML: test.xml    
  jquery.min.js:2:1820

我使用了本教程:http://api.jquery.com/jQuery.parseXML/

这是我使用的 xml 文件结构:

<store>
  <product>
      <name>product name</name>
      <price>price</price>
      <platform>platform</platform>
  </product>
</store>

这是我使用的 JQuery 代码:

xmlDoc = $.parseXML( 'test.xml' ); //path to xml file
$xml = $( xmlDoc );
$name = $xml.find( "name" );
$(document).each(function(){
    $('body').append('<p>'+ name + '</p>');
});

有人能说出我做错了什么吗?

问题是您使用文件名作为 xml 参数。$.parseXML中没有解析文件的工具。它分析 XML 字符串。如果需要从单独的文件加载XML,则需要将其ajax或将文件内容加载到js变量中:

xmlStr = '<store>'
 + ' <product>'
 + '    <name>product name</name>'
 + '     <price>price</price>'
 + '     <platform>platform</platform>'
 + ' </product>'
 + '</store>';
xmlDoc = $.parseXML(xmlStr);
$xml = $(xml);
// do stuff

使用 ajax:

$.ajax({
     url: 'url/for/text.xml',
     dataType: 'xml'
}).done(function (xmlDoc) {
    $xml = $(xmlDoc);
    // do stuff
});