javascript - 如何使用 jQuery 解析 XML 字符串值?

标签 javascript xml jquery

我是 jquery 的新手。我正在尝试使用 jquery 解析 xml 字符串。我找到了一个样本:

$(function () {
    $.get('data.xml', function (d) {
        var data = "";
        var startTag = "<table border='1' id='mainTable'><tbody><tr><td style=\"width: 120px\">Name</td><td style=\"width: 120px\">Link</td></tr>";
        var endTag = "</tbody></table>";
        $(d).find('url').each(function () {
            var $url = $(this);
            var link = $url.find('link').text();
            var name = $url.find('name').text();
            data += '<tr><td>' + name + '</td>';
            data += '<td>' + link + '</td></tr>';
        });
        $("#content").html(startTag + data + endTag);
    });
});

在这种情况下,我能够从 xml 文件中解析和获取值,但现在我要查找的不是从 URL 中读取文件,而是想从字符串中读取 xml。比方说,我想解析由格式良好的 xml 组成的字符串,而不是 data.xml。

有人知道吗?

提前致谢

编辑: 我在以下 xml 上尝试了示例代码;

<?xml version="1.0" encoding="utf-8" ?>
<Urls>
    <url>
        <name>google</name>
        <link>www.google.com</link>
    </url>
    <url>
        <name>aspdotnetcodebook</name>
        <link>http://aspdotnetcodebook.blogspot.com</link>
    </url>
</Urls>


当我在 xml 文件上尝试这个时,一切正常。但是当我切换到字符串时,它不会为链接属性返回任何内容。我称它为;

$(function() {
            var data = $('<?xml version="1.0" encoding="utf-8" ?><Urls><url><name>google</name><link>www.google.com</link></url><url><name>aspdotnetcodebook</name><link>http://aspdotnetcodebook.blogspot.com</link></url></Urls>');
            alert(data);
            doWhateverItIsYourDoing(data);
           });

我无法诊断为什么会这样。

最佳答案

直接传字符串就可以了?

function doWhateverItIsYoureDoing(xml) {
    var data = "";
    var startTag = "<table border='1' id='mainTable'><tbody><tr><td style=\"width: 120px\">Name</td><td style=\"width: 120px\">Link</td></tr>";
    var endTag = "</tbody></table>";
    $(xml).find('url').each(function() {
        var $url = $(this);
        var link = $url.find('link').text();
        var name = $url.find('name').text();
        data += '<tr><td>' + name + '</td>';
          data += '<td>' + link + '</td></tr>';
     });
    $("#content").html(startTag + data + endTag);
}

您的 .get 可以重写为:

 $.get('data.xml',doWhateverItIsYoureDoing );

如果你已经在字符串中有 xml,那么

 var data = "<?xml version=\"1......";
 doWhateverItIsYoureDoing(data);

关于javascript - 如何使用 jQuery 解析 XML 字符串值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3003660/

相关文章:

javascript - 谷歌地图,在标记信息窗口中显示mysql信息

javascript - 如何使用Javascript循环和连接第二个数组列表(如果存在)

jQuery 将 HTML 表转换为 XML

javascript - 任何人都可以从子 iframe 关闭由 Jquery 插件 bPopup 生成的弹出窗口?

javascript - 从 @Html.DisplayFor 和 @Html.HiddenFor 获取值

jquery - 单击 iframe 中的链接然后执行 jQuery 操作

javascript - 具有多个动画的 jQuery 切换

javascript - 如何使用 jQuery 解析 XML 响应

java - 使用 Jersey 将 xml 转换为 json 格式的 Restful WebService

python - 查找 XML 标记值并选择包含所请求标记值的父级