如何遍历自定义XML结构并在jQuery中使用信息

作为一个侧面项目,我目前正在尝试一些东西,并通过浏览器了解XML解释。 我想要实现的是:读取XML并将其转换为可见的HTML结构。

让我们说这是我的XML。 (对于那些好奇的人来说,它是荷兰语句子的语言表达。)我希望能够遍历这个结构,并从中收集信息。 (并且,作为扩展,请将其转换为我自己的HTML。)

                           

但是,这并不像预期的那样容易。 我尝试使用jQuery的$.parseXML(data) ,然后将其转换为jQuery对象,但我似乎无法通过应该生成的XML的内部结构。

如果#xml-input是包含上述XML的代码标记,则以下日志将返回undefined

 var xml = $("#xml-input").html(), xmlParsed = $.parseXML(xml), xmlObject = $(xmlParsed); console.log(xmlObject.node); 

我如何将输入转换为XML,我可以使用jQuery进行操作和操作? 这是一个小提琴 。

您可以使用jQuery方法来操作使用$.parseXML解析的XML文档。 例如,

console.log(xmlObject.find("node"));

返回文档中的所有node元素

小提琴: http : //jsfiddle.net/rj3hpy6m/

对于属性,您可以使用.attr()来获取属性。 例如,从第一个节点获取属性“cat”。

xmlObject.find("node").first().attr("cat") // top

我相信以下演示可以帮助您全面了解。 它遍历所有节点和输出, id, begin and end值。 如果你有任何疑问,请告诉我们。

 $(document).ready(function() { var xml = $("#xml_input").val(), xmlParsed = $.parseXML(xml), xmlObject = $(xmlParsed); function output( nodes ) { nodes.each(function() { $('pre.out').append( 'id='+this.id + ',\t\tbegin='+$(this).attr('begin') + ',\tend='+ $(this).attr('end') + '\n' ); output( $(this).children('node') ); }); } output( xmlObject.children('node') ); }); 
  INPUT: 


OUTPUT: