$ .parseXML无法使用脚本标记解析XML

我正在尝试使用$.parseXML解析以下BPMN 2 XML:

     person.id    

但它返回以下内容:

 Uncaught Error: Invalid XML:   <process processType="Private" isExecutable="true" id="com.sample.......id 

的jsfiddle


编辑

稍后在代码中我必须找到XML的特定部分,如进程,定义等:

 xmlDoc = $.parseXML(data), $xml = $(xmlDoc), $def = $xml.find('definitions'), $process = $def.find('process'), 

  var scriptBody = $('script#scriptBody').text(); console.log(scriptBody); var parser = new DOMParser(); var xml = parser.parseFromString(scriptBody, 'text/xml'); console.log(xml); 

工作得很好。 奇怪的,当然jquery使用这个实现(不适用于IE)

在debug $ function上

 parseXML: function( data ) { var xml, tmp; if ( !data || typeof data !== "string" ) { return null; } try { if ( window.DOMParser ) { // Standard tmp = new DOMParser(); xml = tmp.parseFromString( data , "text/xml" ); } else { // IE xml = new ActiveXObject( "Microsoft.XMLDOM" ); xml.async = "false"; xml.loadXML( data ); } } catch( e ) { xml = undefined; } if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) { jQuery.error( "Invalid XML: " + data ); } return xml; }, 

xml.getElementsByTagName(“parsererror”)中的问题

“此页面包含以下错误:第6行第2行的错误:仅在文档开头允许的XML声明下面是第一个错误之前的页面呈现。”

如果我删除xml声明我得到

“此页面包含以下错误:第29行第10行的错误:文档末尾的额外内容

Interesting Posts