首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >$.parseXML不能使用脚本标记解析XML

$.parseXML不能使用脚本标记解析XML
EN

Stack Overflow用户
提问于 2014-03-14 09:44:33
回答 1查看 642关注 0票数 1

我试图用$.parseXML解析以下BPMN2XML

代码语言:javascript
复制
<?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>

但是,它返回如下:

代码语言:javascript
复制
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的特定部分,如流程、定义等:

代码语言:javascript
复制
xmlDoc   = $.parseXML(data),
$xml     = $(xmlDoc),
$def     = $xml.find('definitions'),
$process = $def.find('process'),
EN

回答 1

Stack Overflow用户

发布于 2014-03-14 12:00:11

代码语言:javascript
复制
 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

代码语言:javascript
复制
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行上的错误:文档末尾的额外内容

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22401311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档