我试图用$.parseXML解析以下BPMN2XML
<?xml version="1.0" encoding="UTF-8"?>
<definitions id="Definition"
xmlns:tns="http://www.jboss.org/drools">
<process processType="Private"
isExecutable="true"
id="com.sample.bpmn"
name="Sample Process"
tns:packageName="defaultPackage" >
<scriptTask id="_2" name="Sample Script" scriptFormat="http://www.java.com/java">
<script>person.id</script>
</scriptTask>
</process>
</definitions>但是,它返回如下:
Uncaught Error: Invalid XML:
<?xml version="1.0" encoding="UTF-8"?>
<definitions id="Definition"
xmlns:tns="http://www.jboss.org/drools">
<process processType="Private"
isExecutable="true"
id="com.sample....<omitted>...id JSFiddle
编辑
在后面的代码中,我必须找到XML的特定部分,如流程、定义等:
xmlDoc = $.parseXML(data),
$xml = $(xmlDoc),
$def = $xml.find('definitions'),
$process = $def.find('process'),发布于 2014-03-14 12:00:11
var scriptBody = $('script#scriptBody').text();
console.log(scriptBody);
var parser = new DOMParser(); var xml =
parser.parseFromString(scriptBody, 'text/xml'); console.log(xml);工作得很好。奇怪的是,jquery当然使用这个实现(不是为IE )
关于调试$ 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行上的错误:文档末尾的额外内容
https://stackoverflow.com/questions/22401311
复制相似问题