【问题标题】:jQuery for parsing XML用于解析 XML 的 jQuery
【发布时间】:2013-04-08 10:42:49
【问题描述】:
         <script>
            $(document).ready(function(){
            var xml = "<rss version='2.0'><channel><title>MyTitle</title></channel></rss>";
            var data = $.parseXML(xml);
            console.log(data);
            $(data).find('rss').each(function(){
            var name = $(this).attr('version');
            $('<div class="items"></div>').html('<a href="'+name+'"></a>').appendTo('#page-wrap');
            });
        });
    </script>
<body>
    <div id="page-wrap">
        </div>
</body>

上面的代码有什么问题?我只是得到一个空白页。它甚至没有超出 var 数据声明。

编辑:现在我将正确的 xml 传递给 parseXML() 但仍然没有结果。还缺少什么?

EDIT2:知道为什么下面的代码不会在 Chrome 浏览器上显示任何输出吗?尽管将脚本和 html 代码放入 JSFiddle 时会产生正确的结果。

EDIT3:使用 jquery-1.9.0 使其工作。感谢大家的帮助和支持。

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

    <script type="text/javascript" src="jquery.js">

$(document).ready(function(){
            var xml = "<rss version='2.0'><channel><title>MyTitle</title></channel></rss>";
            var data = $.parseXML(xml);
            console.log(data);
            $(data).find('rss').each(function(){
            var name = $(this).attr('version');
            $('<div class="items"></div>').html('<a href="'+name+'">'+name+'</a>').appendTo('#page-wrap');
            });
        });

     </script>
</head>
<body>
    <div id="page-wrap"></div>
</body>
</html>

【问题讨论】:

  • 控制台有什么错误吗?
  • 我在您的 xml 中没有看到“方法”,因此 find 不会返回任何内容。或者这是您在此处发布的一些虚拟 xml?使用您的代码并将“方法”更改为“标题”(例如)并在循环内使用 $(this).text() 我能够设置链接到“MyTitle”的 href。顺便说一句,您的链接名称也是空的。
  • 如果您设置链接标题(在更正的代码中您仍然没有它),它会起作用。 See.
  • 您的项目中包含的 jQuery 版本是什么?
  • 在 chrome 开发工具 (f12) 的控制台选项卡中。

标签: jquery xml xml-parsing


【解决方案1】:

jquery docsparseXML 的输入应该是格式良好的 xml 字符串,而不是文件位置

【讨论】:

    【解决方案2】:

    您的浏览器进程无法直接从您的文件系统打开文件,如果可以的话,这将是一个容易被利用的安全漏洞。

    【讨论】:

    • +1,但请注意,浏览器大多在其设置中都有允许本地文件系统访问的选项。但这仅适用于您在 Intranet 中部署 Web 应用程序并且您将批量配置该网络中的所有计算机的情况。这通常是大学和公司内部的常见做法。
    • 不管怎样,文件系统位置需要以file:开头。
    【解决方案3】:

    你弄错了。

    1. 您正在寻找 xml 中实际上不存在的节点 method
    2. attr('name') 是什么?它属于谁?
    3. &lt;a&gt; 标记确实具有显示为链接的文本。例如。 &lt;a href="url"&gt;The Text&lt;/a&gt;
    4. 最后,由于您附加了(包装在 a 中),因此我简化了您的代码。

    跟随下面的小提琴:JS Fiddle to your code

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-30
      相关资源
      最近更新 更多