Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.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_Jquery_Xml - Fatal编程技术网

Javascript 使用jquery阅读此xml

Javascript 使用jquery阅读此xml,javascript,jquery,xml,Javascript,Jquery,Xml,我在使用jQuery读取此xml时遇到问题 XML: 请帮点忙。试试这个 $('*', xml).each(function () { 更换线路上的电缆 $(xml).find("myElements").each(function () { 或 原因不言而喻:您必须获取子元素,而不是根元素。首先,您需要将xml变量包装在对jQuery函数的调用中,如$(xml)中所示。然后,调用children()将获得所有目标元素 下面是一个非常基本(而且很草率)的迭代元素的工作示例,但需要更改的只是

我在使用jQuery读取此xml时遇到问题

XML:

请帮点忙。

试试这个

$('*', xml).each(function () {
更换线路上的电缆

$(xml).find("myElements").each(function () {


原因不言而喻:您必须获取子元素,而不是根元素。

首先,您需要将
xml
变量包装在对jQuery函数的调用中,如
$(xml)
中所示。然后,调用
children()
将获得所有目标元素

下面是一个非常基本(而且很草率)的迭代元素的工作示例,但需要更改的只是选择器:

var xml = '<myElements type="AA" coID="A923"><element1>01</element1> <element2>02</element2><element3>03</element3></typeData>';

var myOutput = $("#output");

myOutput.append("=== start ===<br />");
$(xml).children().each(function () {
    var xmlnode = $(this);
    myOutput.append(this.tagName + xmlnode.text() + '<br/>');
});

myOutput.append("=== end ===");
var xml='01 0203';
var myOutput=$(“#输出”);
myOutput.append(“==start===
”); $(xml).children().each(函数(){ var xmlnode=$(这个); myOutput.append(this.tagName+xmlnode.text()+'
); }); myOutput.append(“==end==”);

工作演示:

您可以使用jQuery
parseXML
(请参阅)函数将XML字符串解析为XML文档对象。只需在变量声明和
每个循环之间添加这一行:

xml = $.parseXML(xml);

那么剩下的部分就可以了。你可以看到一个例子。

我真的建议使用ajax。IE讨厌jquery获取xml的方式。我已经用了很长时间,取得了很多成功,而且没有问题

$.ajax({
    url: "path-to-file.xml",
    dataType: ($.browser.msie) ? "text" : "xml",
    success: function(data){
                            var xml;    
                            if (typeof data == "string") {
                               xml = new ActiveXObject("Microsoft.XMLDOM");
                               xml.async = false;
                               xml.loadXML(data);
                            } else {
                               xml = data;
                            }
                        alert($(xml).find('element1').text());
                                            alert($(xml).find('element2').text());
                                            alert($(xml).find('element3').text());
                    },//END SUCCSESS
    error: function(){
        alert("Sorry, There was an error loading this information. Refresh the page or try again later. ");
        history.go(-1);
    }
});//END AJAX CALL

我知道这看起来很多,但其实没那么糟。在.each()中输入xml的路径,做你想做的事。

很抱歉格式化了,该死的制表符和空格有时会失控(+1)谢谢,我希望我能给你们两个表扬。但他有一个“this.tagName”,它还向我展示了如何检索标记名值。
var xml = '<myElements type="AA" coID="A923"><element1>01</element1> <element2>02</element2><element3>03</element3></typeData>';

var myOutput = $("#output");

myOutput.append("=== start ===<br />");
$(xml).children().each(function () {
    var xmlnode = $(this);
    myOutput.append(this.tagName + xmlnode.text() + '<br/>');
});

myOutput.append("=== end ===");
xml = $.parseXML(xml);
$.ajax({
    url: "path-to-file.xml",
    dataType: ($.browser.msie) ? "text" : "xml",
    success: function(data){
                            var xml;    
                            if (typeof data == "string") {
                               xml = new ActiveXObject("Microsoft.XMLDOM");
                               xml.async = false;
                               xml.loadXML(data);
                            } else {
                               xml = data;
                            }
                        alert($(xml).find('element1').text());
                                            alert($(xml).find('element2').text());
                                            alert($(xml).find('element3').text());
                    },//END SUCCSESS
    error: function(){
        alert("Sorry, There was an error loading this information. Refresh the page or try again later. ");
        history.go(-1);
    }
});//END AJAX CALL