Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.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 如何使用jQuery解析XML字符串值?_Javascript_Xml_Jquery - Fatal编程技术网

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

Javascript 如何使用jQuery解析XML字符串值?,javascript,xml,jquery,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&

我不熟悉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);
    });
});
$(函数(){
$.get('data.xml',函数(d){
var数据=”;
var startTag=“NameLink”;
var endTag=“”;
$(d).find('url').each(函数(){
var$url=$(这个);
var link=$url.find('link').text();
var name=$url.find('name').text();
数据+=''+名称+'';
数据+=''+链接+'';
});
$(“#content”).html(startTag+data+endTag);
});
});
在本例中,我能够从xml文件中解析和获取值,但现在我要寻找的不是从URL读取文件,而是从字符串读取xml。比方说,我想解析由格式良好的xml组成的字符串,而不是data.xml

有人知道这件事吗

提前谢谢

编辑: 我在下面的xml上尝试了一个示例代码;


谷歌
www.google.com
aspdotnetcodebook
http://aspdotnetcodebook.blogspot.com

当我在xml文件上尝试这个方法时,一切都很好。但当我切换到string时,它不会为link属性返回任何内容。我称之为;

$(函数(){
var数据=$('googlewww.google.comaspdotnetcodebookhttp://aspdotnetcodebook.blogspot.com');
警报(数据);
您所做的每件事(数据);
});

我无法诊断发生这种情况的原因。

直接传递字符串好吗

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);
}
如果字符串中已经有xml,那么

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

var 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);
}
如果字符串中已经有xml,那么

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

var data=“将格式良好的XML字符串放入jQuery对象:

var xml = "<?xml version=\"1.0\"?><Dialog><Adam Emotion=\"strong\">I love you!</Adam><Eva Emotion=\"low\">I love you, too!</Eva></Dialog>";


只需将格式良好的XML字符串放入jQuery对象:

var xml = "<?xml version=\"1.0\"?><Dialog><Adam Emotion=\"strong\">I love you!</Adam><Eva Emotion=\"low\">I love you, too!</Eva></Dialog>";


将XML字符串放入javascript变量中

var xmlString = $(‘<?xml version=”1.0″?><Customers><Customer Name=”Allan Border”           Age=”26″ ContactNumber=”004416165245″ Address=”Unit # 24 East London” City=”London”  Country=”England”></Customer><Customer Name=”Jennifer” Age=”28″ ContactNumber=”004416165248″ Address=”Unit # 28 West London” City=”London” Country=”England”></Customer></Customers>’);

将XML字符串放入javascript变量中

var xmlString = $(‘<?xml version=”1.0″?><Customers><Customer Name=”Allan Border”           Age=”26″ ContactNumber=”004416165245″ Address=”Unit # 24 East London” City=”London”  Country=”England”></Customer><Customer Name=”Jennifer” Age=”28″ ContactNumber=”004416165248″ Address=”Unit # 28 West London” City=”London” Country=”England”></Customer></Customers>’);

请注意,要正确解析任何类型的XML文件,您需要使用
parseXML()
函数,如中所示:

var xml_jquery_object = jQuery.parseXML(xml);
当您按照其他答案中的说明进行操作时:

var html_jquery_object = jQuery(xml);
您要求jQuery解析HTML而不是XML。最大的区别是HTML删除了一些标记(body、HTML、head…),并期望某些标记为空(br、hr…)。因此,如果XML文件以某种方式包含此类标记,则可能会中断对XML文件的解析

xml
当然也可以是直接字符串。AJAX
.get()
函数无论如何都会向函数返回一个字符串。(更好的
.ajax()
函数可以直接返回XML对象。)因此,您可以在该变量中定义任何XML代码,如下所示:

xml = "<?xml version='1.0'?><test>...</test>";
xml=“…”;

请注意,要正确解析任何类型的XML文件,您需要使用
parseXML()
函数,如中所示:

var xml_jquery_object = jQuery.parseXML(xml);
当您按照其他答案中的说明进行操作时:

var html_jquery_object = jQuery(xml);
您要求jQuery解析HTML而不是XML。最大的区别是HTML删除了一些标记(body、HTML、head…),并期望某些标记为空(br、hr…)。因此,如果XML文件以某种方式包含此类标记,则可能会中断对XML文件的解析

xml
当然也可以是直接字符串。AJAX
.get()
函数无论如何都会向函数返回一个字符串。(更好的
.ajax()
函数可以直接返回XML对象。)因此,您可以在该变量中定义任何XML代码,如下所示:

xml = "<?xml version='1.0'?><test>...</test>";
xml=“…”;

你好,丹,谢谢你的回复。我试过了,但什么也没回。我所做的是;将变量声明为;var data=“googlewww.google.comaspdotnetcodebook.blogspot.com”;将函数修改为;$。get('data.xml',dowhateveritisyourdo(data));正如你所建议的,我添加了这个函数。它正在显示空白页。如果你需要远程获取XML,那么你就错过了.GET(‘DATA .xml’)。在您的例子中,您刚刚使var data=您的xml—所以只需调用doWhateverItIsYoureDoing(data);-不,get()-是吗?谢谢,丹:)。它奏效了,但面临一个问题。它没有为“链接”返回任何内容。对于名称属性,它工作正常。再次感谢你的帮助。嗨,丹,谢谢你的回复。我试过了,但什么也没回。我所做的是;将变量声明为;var data=“googlewww.google.comaspdotnetcodebook.blogspot.com”;将函数修改为;$。get('data.xml',dowhateveritisyourdo(data));正如你所建议的,我添加了这个函数。它正在显示空白页。如果你需要远程获取XML,那么你就错过了.GET(‘DATA .xml’)。在您的例子中,您刚刚使var data=您的xml—所以只需调用doWhateverItIsYoureDoing(data);-不,get()-是吗?谢谢,丹:)。它奏效了,但面临一个问题。它没有为“链接”返回任何内容。对于名称属性,它工作正常。再次感谢你的帮助。一定要阅读一定要阅读