Javascript 如何使用jQuery解析XML字符串值?
我不熟悉jquery。我正在尝试使用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&
$(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()-是吗?谢谢,丹:)。它奏效了,但面临一个问题。它没有为“链接”返回任何内容。对于名称属性,它工作正常。再次感谢你的帮助。一定要阅读一定要阅读