Javascript jquery解析多个标记的xml

Javascript jquery解析多个标记的xml,javascript,jquery,xml,parsexml,Javascript,Jquery,Xml,Parsexml,我想从XML文档中获取多个标记。我看了哪些基本上得到了一个标记的子元素,而我想要所有的标记。使用相同的示例XML(复制如下): 但这似乎并不正确。有没有正确(更有效)的方法来实现这一点?我认为。每个函数都与它有关,但并不真正理解如何使用它。如果您的结构是固定的,您可以尝试以下方法: var data = "<root>"+ "<instructions>Some ins text.</instructions>"+ "<options

我想从XML文档中获取多个标记。我看了哪些基本上得到了一个标记的子元素,而我想要所有的标记。使用相同的示例XML(复制如下):


但这似乎并不正确。有没有正确(更有效)的方法来实现这一点?我认为。每个函数都与它有关,但并不真正理解如何使用它。

如果您的结构是固定的,您可以尝试以下方法:

 var data = 
"<root>"+
    "<instructions>Some ins text.</instructions>"+
    "<options>"+
      " <option>1.png</option>"+
       "<option>2.png</option>"+
      " <option>3.png</option>"+
      " <option>4.png</option>"+
   " </options>"+
   " <noOfOptions>4</noOfOptions>"+
   "<instructions>Some ins text1.</instructions>"+
   "<options>"+
     " <option>1.png</option>"+
      "<option>2.png</option>"+
     " <option>3.png</option>"+
     " <option>4.png</option>"+
  " </options>"+
  " <noOfOptions>4</noOfOptions>"+
"</root>";
xml = $.parseXML(data);
var arr=[];
    var arr=[];
    $("instructions", xml).each(function (index,val) {

        arr[index]=[];
        arr[index]['instructions']=$(this).text();
        arr[index]['option']=[];
        $("option",$(val).next()).each(function(){
            arr[index]['option'].push($(this).text());
        });
        arr[index]['noOfOptions']=[];
        arr[index]['noOfOptions']=$($(val).next()).next().text();

        });
    console.log(arr);
var数据=
""+
“一些ins文本。”+
""+
“1.巴布亚新几内亚”+
“2.巴布亚新几内亚”+
“3.巴布亚新几内亚”+
“4.巴布亚新几内亚”+
" "+
" 4"+
“一些ins text1。”+
""+
“1.巴布亚新几内亚”+
“2.巴布亚新几内亚”+
“3.巴布亚新几内亚”+
“4.巴布亚新几内亚”+
" "+
" 4"+
"";
xml=$.parseXML(数据);
var-arr=[];
var-arr=[];
$(“指令”,xml)。每个(函数(索引,val){
arr[index]=[];
arr[index]['instructions']=$(this.text();
arr[index]['选项]=[];
$(“option”,$(val).next()).each(function()){
arr[index]['option'].push($(this.text());
});
arr[index]['noOfOptions']=[];
arr[index]['noOfOptions']=$($(val.next()).next().text();
});
控制台日志(arr);
控制台输出:

[Array[0],Array[0]]0:Array[0]说明:“某些ins文本。”长度: 0noOfOptions:“4”选项:数组[4]proto:数组[0]1:数组[0]长度: 2__协议:数组[0]


如果您需要整个数据作为json(可以在jquery数组/对象中转换vbe),您可以使用:

如果您的结构是固定的,您可以尝试以下方法:

 var data = 
"<root>"+
    "<instructions>Some ins text.</instructions>"+
    "<options>"+
      " <option>1.png</option>"+
       "<option>2.png</option>"+
      " <option>3.png</option>"+
      " <option>4.png</option>"+
   " </options>"+
   " <noOfOptions>4</noOfOptions>"+
   "<instructions>Some ins text1.</instructions>"+
   "<options>"+
     " <option>1.png</option>"+
      "<option>2.png</option>"+
     " <option>3.png</option>"+
     " <option>4.png</option>"+
  " </options>"+
  " <noOfOptions>4</noOfOptions>"+
"</root>";
xml = $.parseXML(data);
var arr=[];
    var arr=[];
    $("instructions", xml).each(function (index,val) {

        arr[index]=[];
        arr[index]['instructions']=$(this).text();
        arr[index]['option']=[];
        $("option",$(val).next()).each(function(){
            arr[index]['option'].push($(this).text());
        });
        arr[index]['noOfOptions']=[];
        arr[index]['noOfOptions']=$($(val).next()).next().text();

        });
    console.log(arr);
var数据=
""+
“一些ins文本。”+
""+
“1.巴布亚新几内亚”+
“2.巴布亚新几内亚”+
“3.巴布亚新几内亚”+
“4.巴布亚新几内亚”+
" "+
" 4"+
“一些ins text1。”+
""+
“1.巴布亚新几内亚”+
“2.巴布亚新几内亚”+
“3.巴布亚新几内亚”+
“4.巴布亚新几内亚”+
" "+
" 4"+
"";
xml=$.parseXML(数据);
var-arr=[];
var-arr=[];
$(“指令”,xml)。每个(函数(索引,val){
arr[index]=[];
arr[index]['instructions']=$(this.text();
arr[index]['选项]=[];
$(“option”,$(val).next()).each(function()){
arr[index]['option'].push($(this.text());
});
arr[index]['noOfOptions']=[];
arr[index]['noOfOptions']=$($(val.next()).next().text();
});
控制台日志(arr);
控制台输出:

[Array[0],Array[0]]0:Array[0]说明:“某些ins文本。”长度: 0noOfOptions:“4”选项:数组[4]proto:数组[0]1:数组[0]长度: 2__协议:数组[0]

如果您需要整个数据作为json(可以在jquery数组/对象中转换vbe),您可以使用:

var数据=
"\
有些是文本\
\
1.png\
2.png\
3.png\
4.png\
\
4\
";
var xml=$.parseXML(数据);
var$data=$(xml);
var指令=$data.find(“指令”).text();
var期权=[];
$data.find(“选项”).each(函数(){
options.push($(this.text());
});
控制台日志(“指令:+指令);
日志(“选项:”,选项)
var数据=
"\
有些是文本\
\
1.png\
2.png\
3.png\
4.png\
\
4\
";
var xml=$.parseXML(数据);
var$data=$(xml);
var指令=$data.find(“指令”).text();
var期权=[];
$data.find(“选项”).each(函数(){
options.push($(this.text());
});
控制台日志(“指令:+指令);
日志(“选项:”,选项)

是否只有一个
说明
和多个
选项
?不一定。事实上,大多数情况下,我都不需要降低一个级别。我关心的是
指令的数量,因为在我的回答中,我假设只有一条指令。如果可能更多,那么您应该制作一个数组,就像
选项
s一样。是否只有一个
指令
和多个
选项
?不一定。事实上,大多数情况下,我都不需要降低一个级别。我关心的是
指令的数量,因为在我的回答中,我假设只有一条指令。如果可能更多,那么您应该为它们创建一个数组,就像
选项
s一样。
 var data = 
"<root>"+
    "<instructions>Some ins text.</instructions>"+
    "<options>"+
      " <option>1.png</option>"+
       "<option>2.png</option>"+
      " <option>3.png</option>"+
      " <option>4.png</option>"+
   " </options>"+
   " <noOfOptions>4</noOfOptions>"+
   "<instructions>Some ins text1.</instructions>"+
   "<options>"+
     " <option>1.png</option>"+
      "<option>2.png</option>"+
     " <option>3.png</option>"+
     " <option>4.png</option>"+
  " </options>"+
  " <noOfOptions>4</noOfOptions>"+
"</root>";
xml = $.parseXML(data);
var arr=[];
    var arr=[];
    $("instructions", xml).each(function (index,val) {

        arr[index]=[];
        arr[index]['instructions']=$(this).text();
        arr[index]['option']=[];
        $("option",$(val).next()).each(function(){
            arr[index]['option'].push($(this).text());
        });
        arr[index]['noOfOptions']=[];
        arr[index]['noOfOptions']=$($(val).next()).next().text();

        });
    console.log(arr);