public static void getXMLInfo(String filelocation){
String filename=BeifengMVCXMLFactory.class.getResource("/"+filelocation).getFile();
File file=new File(filename);
SAXReader reader=new SAXReader();
Document doc=null;
Package pack=null;
BeifengMvc mvc=new BeifengMvc();
List<IncludeFile> includefilelist=null;
List<InterceptorInfo> allinterceptor=null;
Map<String, InterceptorStack> stackmap=null;
Map<String, Action> actionmap=null;
try {
doc=reader.read(file);
Element root=doc.getRootElement();
Element packagee=root.element("package");
pack=new Package();
pack.setPackagename(packagee.attributeValue("name"));
pack.setNamespace(packagee.attributeValue("namespace"));
pack.setExtendsfile(packagee.attributeValue("extends"));
List<Element> list=packagee.elements();
for(Element e:list){
if(e.getName().equals("include")){
if(null==includefilelist){
includefilelist=new ArrayList<IncludeFile>();
}
IncludeFile include=new IncludeFile();
include.setFile(e.attributeValue("file"));
includefilelist.add(include);
}else if(e.getName().equals("interceptor")){
if(null==allinterceptor){
allinterceptor=new ArrayList<InterceptorInfo>();
}
InterceptorInfo info=new InterceptorInfo();
info.setInterceptorname(e.attributeValue("name"));
info.setInterceptorclass(e.attributeValue("class"));
//获得拦截器内的标签,从而配置Result属性
List<Element> resultlist=e.elements();
if(resultlist!=null){
Map<String, Result> resultmap=null;
List<String> notinterfunctionlist=null;
Map<String,String> parammap=null;
for(Element resulte:resultlist){
if(resulte.getName().equals("result")){
if(null==resultmap){
resultmap=new HashMap<String, Result>();
}
Result r=new Result();
r.setResultname(resulte.attributeValue("name"));
Attribute type=resulte.attribute("type");
if(type!=null){
r.setResulttype(type.getValue());
}
r.setResultjsp(resulte.getText());
resultmap.put(r.getResultname(), r);
}else if(resulte.getName().equals("notinterfunction")){
if(null==notinterfunctionlist){
notinterfunctionlist=new ArrayList<String>();
}
notinterfunctionlist.add(resulte.attributeValue("name"));
}else if(resulte.getName().equals("param")){
if(null==parammap){
parammap=new HashMap<String, String>();
}
parammap.put(resulte.attributeValue("name"), resulte.getText());
}
}
info.setResultmap(resultmap);
info.setNotinterfunctionlist(notinterfunctionlist);
info.setParammap(parammap);
}
allinterceptor.add(info);
}
分享到:
相关推荐
在C# WinForm应用程序中,读写XML文件是常见的数据操作任务。XML(eXtensible Markup Language)是一种用于存储和传输数据的标准格式,它结构清晰、易于解析且跨平台。下面将详细介绍如何使用C# WinForm来实现XML...
下面将详细讨论PHP如何利用DOMDocument类读取XML文件以及这个“php读取xml文件类”的基本工作原理。 首先,DOMDocument类是PHP内建的DOM扩展的一部分,它遵循DOM(Document Object Model)规范,为XML文档提供了一...
本项目"**C++ 读写XML文件**"是针对MFC(Microsoft Foundation Classes)框架的一个示例,展示了如何在C++环境中方便地操作XML文件。 首先,我们需要了解XML的基本结构。XML文件由元素(Element)、属性(Attribute...
2. **读取 XML 文件** 要读取 XML 文件,首先需要创建一个 `TiXmlDocument` 对象,然后调用 `LoadFile()` 方法加载文件。如果文件加载成功,该方法返回 `true`。例如: ```cpp TiXmlDocument doc("example.xml");...
微软提供了MSXML2.0, 4.0 及 6.0动态链接库来支援开发人员读写XML文件。 而LabVIEW正可以通过OLE自动化接口,调用MSXML*.dll动态链接库,完成对XML文件的操作。如果你的系统没有安装MSXML*.dll,可以去网上下载并...
以上就是C#中读写XML文件的基本操作,涵盖了增加、删除、修改和查找元素的方法。在实际应用中,还需要注意错误处理、文件锁定等问题,确保代码的健壮性。同时,根据具体需求,可以选择合适的XML处理方式,如DOM、SAX...
首先,你需要导入System.XML读写XML文件所需的基本库。在Delphi中,可以使用TXMLDocument类来处理XML文档。以下是读取XML文件的基本步骤: 1. 创建TXMLDocument对象: ```delphi var XMLDoc: TXMLDocument; ...
本次重构的主题是创建一个快速读写XML文件的工具类,这在处理数据存储和交换时非常常见。XML(eXtensible Markup Language)是一种结构化数据格式,广泛应用于配置文件、数据传输和数据存储等领域。 在描述中提到的...
### Java读写XML文件知识点详解 #### 一、概述 在Java编程中,对XML文件进行读取与写入是一项非常常见的任务。XML(可扩展标记语言)是一种用于标记数据的语言,非常适合用来存储和传输数据。Java提供了多种API来...
本示例将详细介绍如何在C#中读取XML文件,帮助开发者理解并掌握相关技术。 首先,让我们了解XML文件的基本结构。XML文件通常包含元素(Element)、属性(Attribute)、文本内容(Text Content)等组成部分。元素是...
通过以上步骤,我们已经掌握了如何在Qt中使用QTreeWidget读写XML文件以及实现拖放功能。这些技能对于开发任何涉及XML数据操作和用户界面交互的Qt应用都是非常有价值的。在实际项目中,可能还需要根据具体需求对代码...
本教程将详细介绍如何在Qt应用中实现XML文件的读取与写入,并将数据展示到QTableWidget中,以及从QTableWidget中保存回XML文件。 首先,Qt提供了QDomDocument类来处理XML文档,它可以解析XML文件并创建一个内存中的...
直接读写XML文件是编程中常见的任务,尤其是在处理结构化数据时。 XML文件读写涉及到的主要知识点包括: 1. XML基本结构:XML文档由元素(Element)、属性(Attribute)、文本内容(Text Content)等构成。元素是...
本项目涉及的核心技术是“读取XML文件”和“写入Excel表格”。XML(Extensible Markup Language)是一种用于存储和传输数据的标准化格式,而Excel则是Microsoft Office套件中的一个组件,用于创建、编辑和分析数据。...
XML(eXtensible Markup Language)是一...以上是关于XML文件读写的关键知识点,掌握这些技能后,你就能灵活地在Java项目中处理XML数据,无论是读取配置文件、存储复杂数据还是与其他系统进行数据交换,都能游刃有余。
要读取XML文件,Java提供了多种方法。以下是四种常用的方法,每种都有其适用场景和特点: 1. **DOM解析器(Document Object Model)** DOM解析器将整个XML文件加载到内存中,创建一个树形结构,允许我们通过节点...
本教程将深入探讨如何使用TinyXML解析器在C++中读取XML文件。 TinyXML是一个小型、轻量级的开源库,设计用于在C++中解析XML文档。它的主要优点在于简单易用,同时保持了良好的性能。下面我们将详细介绍如何使用Tiny...
本项目“tinyxml2解析XML文件读取数据”主要关注如何使用tinyxml2库来高效地解析XML文件并提取其中的数据。以下将详细介绍tinyxml2库的关键功能和使用方法。 1. **tinyxml2库介绍** - tinyxml2提供了DOM(Document...
在VC++环境中,读写XML文件是常见的数据存储和交换任务。XML(eXtensible Markup Language)是一种结构化数据格式,广泛应用于配置文件、数据传输和存储等场景。MSXML,即Microsoft XML Core Services,是由微软提供...