`
kkkloveyou
  • 浏览: 26251 次
文章分类
社区版块
存档分类
最新评论

由“Jasperrpeorts 4.1.2升级到5.1.2对flex项目的解析”到AS3 带命名空间的XML的操作

 
阅读更多

原文同步至:http://www.waylau.com/from-jasperrpeorts-4-1-2-upgraded-to-5-1-2-parsing-of-flex-projects-to-the-as3-namespace-xml-operation/


项目中,对Jasperrpeorts-4.1.2核心包进行了升级,发现,前端flex无法对Jasperrpeorts的格式进行解析了~

iReport 4.1 设计的模版可以解析,而iReport 4.6 设计的模版就不行了~

断点后,对比了从后台传过来的Jasperrpeorts 的xml数据,发现存在差异

4.1.2包生成的xml数据jasperPrint标签为:

<jasperPrint name="report13" pageWidth="842" pageHeight="842" topMargin="0" leftMargin="0" bottomMargin="0" rightMargin="0" locale="zh_CN" timezone="Asia/Shanghai">

5.1.2包生成的xml数据jasperPrint标签为:

<jasperPrint xmlns="http://jasperreports.sourceforge.net/jasperreports/print"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/print

http://jasperreports.sourceforge.net/xsd/jasperprint.xsd" name="report13"

pageWidth="842" pageHeight="842" topMargin="0" leftMargin="0" bottomMargin="0"

rightMargin="0" locale="zh_CN" timezone="Asia/Shanghai">

后期版本的Jasperrpeorts核心包多生成了命名空间

而之前官方提供Jasperrpeorts 的flex解析包net.sf.jasperreports.flex (来自Jasperrpeorts的项目示例jasperreports-flash-4.0.0-project.zip)任然停留在2010年的版本未更新(估计Jasperrpeorts放弃了对flash的支持),导致无法对新版本的xml数据进行解析

AS3对于带命名空间的XML的解析操作上有很大的差异,例如以下来自Jasperrpeorts的ReportFactory.as

 var props:XMLList = xml.property;
			for each (var prop:XML in props)
			{
				if (prop.@name == "net.sf.jasperreports.export.xml.start.page.index")
				{
					report.startPageIndex = int(prop.@value);
				}
				if (prop.@name == "net.sf.jasperreports.export.xml.end.page.index")
				{
					report.endPageIndex = int(prop.@value);
				}
				if (prop.@name == "net.sf.jasperreports.export.xml.page.count")
				{
					report.pageCount = int(prop.@value);
				}
			}

由于新版本多了命名空间,所以 直接xml.property 是无法获取到property的。要带上命名空间

var ns:Namespace = new Namespace("http://jasperreports.sourceforge.net/jasperreports/print");
trace(xml.ns::property);    //输出带名字空间的XML

由于 涉及到多个 命名空间,这种方式在该项目中不合适,且要修改后续的其他操作。

最简单的方式,就是 干掉命名空间,这样后续操作不变。

这个就涉及到XML的操作了。查XML api发现了removeNamespace(ns:Namespace):XML方法,以为轻松搞定,实验后 ,发现 不行。默认的命名空间(如 xmlns="http://jasperreports.sourceforge.net/jasperreports/print")无法删除。

用xml.children()方法取他孩子,发现,每个孩子也带上了命名空间。

最后用上了正则表达式。限定类型的命名表达式可以删除了。而且用了两次。汗。。

           var str:String = oldxml.toString();

           var str2:String = str.replace(/xmlns(.*?)="(.*?)"/gm, "").replace(/xsi(.*?)="(.*?)"/gm, "");

            xml = new XML(str2);

暂时搞定~

分享到:
评论

相关推荐

    xml入门经典-part3(中文版)

    7.7.1 MSXML对命名空间和模式的支持 7.7.2 数据类型 7.8 图书目录中的变化 7.8.1 为什么烦恼 7.8.2 重铸DTD 7.8.3 模式协调 7.9 小结 第8章 链接和查询 8.1 XML 信息集合 8.1.1 信息类型 8.1.2 信息集合的...

    08cms房产系统v4.1.2升级补丁

    08cms房产系统v4.1.2升级补丁,未破解版本,仅供爱好者研究使用!

    2019_2020学年七年级数学上册第四章几何图形初步4.1几何图形4.1.2点线面体同步课堂练习解析版含解析新版新人教版202

    2019_2020学年七年级数学上册第四章几何图形初步4.1几何图形4.1.2点线面体同步课堂练习解析版含解析新版新人教版20200407263

    poi 3.8和4.1.2.rar

    压缩包里面是java的poi jar包。主要操作excel导入和导出,有两个版本分别是3.8和4.1.2的

    XML高级编程pdf

    7.7.1 MSXML对命名空间和模式的支持 7.7.2 数据类型 7.8 图书目录中的变化 7.8.1 为什么烦恼 7.8.2 重铸DTD 7.8.3 模式协调 7.9 小结 第8章 链接和查询 8.1 XML 信息集合 8.1.1 信息类型 8.1.2 信息集合的...

    httpclient4.1.2 jar包

    httpclient4.1.2 jar包

    jxls-core1.0.6不支持poi4.1.2

    jxls-core升级为poi4.1.2

    XML 高级编程(高清版)

    7.7.1 MSXML对命名空间和模式的支持 7.7.2 数据类型 7.8 图书目录中的变化 7.8.1 为什么烦恼 7.8.2 重铸DTD 7.8.3 模式协调 7.9 小结 第8章 链接和查询 8.1 XML 信息集合 8.1.1 信息类型 8.1.2 信息集合的...

    XML高级编程 (Extensible Markup Language)

    7.7.1 MSXML对命名空间和模式的支持 7.7.2 数据类型 7.8 图书目录中的变化 7.8.1 为什么烦恼 7.8.2 重铸DTD 7.8.3 模式协调 7.9 小结 第8章 链接和查询 8.1 XML 信息集合 8.1.1 信息类型 8.1.2 信息集合的...

    poi-ooxml-4.1.2-API文档-中文版.zip

    赠送jar包:poi-ooxml-4.1.2.jar; 赠送原API文档:poi-ooxml-4.1.2-javadoc.jar; 赠送源代码:poi-ooxml-4.1.2-sources.jar; 赠送Maven依赖信息文件:poi-ooxml-4.1.2.pom; 包含翻译后的API文档:poi-ooxml-...

    poi-4.1.2-API文档-中文版.zip

    赠送jar包:poi-4.1.2.jar; 赠送原API文档:poi-4.1.2-javadoc.jar; 赠送源代码:poi-4.1.2-sources.jar; 赠送Maven依赖信息文件:poi-4.1.2.pom; 包含翻译后的API文档:poi-4.1.2-javadoc-API文档-中文(简体)版...

    httpclient4.1.2.zip

    httpclient4.1.2.zip

    android4.1.2 SDK PLATFORMS

    android4.1.2 SDK PLATFORMS

    poi-4.1.2需要的jar包.zip

    poi-4.1.2需要的jar包,需要使用的朋友可以直接用,从maven库整理出来的。

    XML高级编程

    7.7.1 MSXML对命名空间和模式的支持 228 7.7.2 数据类型 229 7.8 图书目录中的变化 230 7.8.1 为什么烦恼 230 7.8.2 重铸DTD 231 7.8.3 模式协调 236 7.9 小结 240 第8章 链接和查询 241 8.1 XML 信息集合 241 8.1.1...

    poi-4.1.2-API文档-中英对照版.zip

    赠送jar包:poi-4.1.2.jar; 赠送原API文档:poi-4.1.2-javadoc.jar; 赠送源代码:poi-4.1.2-sources.jar; 赠送Maven依赖信息文件:poi-4.1.2.pom; 包含翻译后的API文档:poi-4.1.2-javadoc-API文档-中文(简体)-...

    JAVA poi-4.1.2 完整包

    JAVA poi-4.1.2 完整包,操作excel,word,ppt必备。Apache POI是Apache软件基金会的开源项目,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。

    poi-4.1.2完整jar包

    poi-4.1.2完整jar包。 poi-4.1.2.jar poi-examples-4.1.2.jar poi-excelant-4.1.2.jar poi-ooxml-4.1.2.jar poi-ooxml-schemas-4.1.2.jar poi-scratchpad-4.1.2.jar

    poi4.1.2.zip

    poi4.1.2,

    Android.4.1.2.doc-1.3.zip

    The full Android documentation bundled in a single CHM (Compiled HTML Help) file for easy offline access. The CHM includes the following items: The Android design documentation The Android training ...

Global site tag (gtag.js) - Google Analytics