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