public static void init(){
String filename=BeifengMVCXMLFactory.class.getResource("/beifengmvc.xml").getFile();
File file=new File(filename);
SAXReader reader=new SAXReader();
Document doc=null;
try {
doc=reader.read(file);
Element root=doc.getRootElement();
Element packagee=root.element("package");
String defaultfilename=packagee.attributeValue("extends");
getDefaultXMLInfo(defaultfilename);
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private static void getDefaultXMLInfo(String filename){
File file=new File(BeifengMVCXMLFactory.class.getResource("/"+filename+".xml").getFile());
SAXReader reader=new SAXReader();
BeifengMvc mvc=new BeifengMvc();
List<InterceptorInfo> allinterceptor=null;
Map<String, InterceptorStack> stackmap=null;
String defaultstack="";
try {
Document doc=reader.read(file);
Element root=doc.getRootElement();
Element packages=root.element("package");
List<Element> list=packages.elements();
for(Element e:list){
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=new HashMap<String, Result>();
for(Element resulte:resultlist){
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);
}
info.setResultmap(resultmap);
}
allinterceptor.add(info);
}else if(e.getName().equals("interceptor-stack")){
if(null==stackmap){
stackmap=new HashMap<String, InterceptorStack>();
}
InterceptorStack stack=new InterceptorStack();
stack.setStackname(e.attributeValue("name"));
List<Element> refelement=e.elements();
List<InterceptorInfo> interceptorlist=new ArrayList<InterceptorInfo>();
for(Element ref:refelement){
String refname=ref.attributeValue("name");
for(InterceptorInfo info:allinterceptor){
if(refname.equals(info.getInterceptorname())){
interceptorlist.add(info);
break;
}
}
}
stack.setInterceptorlist(interceptorlist);
stackmap.put(stack.getStackname(), stack);
}else if(e.getName().equals("defaultstack")){
defaultstack=e.attributeValue("name");
}
}
mvc.setDefaultstack(defaultstack);
mvc.setAllinterceptor(allinterceptor);
mvc.setStackmap(stackmap);
ConstantMVC.DEFAULTMVCINFO=mvc;
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
分享到:
相关推荐
一款php xml读取类,很简单的一个xml分析类了,它可读取指它xml文档,并且输出或取得指定节点的xml数据,本xml类代码是利用了php domdocument来解析xml文档。
C++ 读取xml文件,专门针对xml类型文件的C++读取代码,可帮助需要这类读文件的童鞋参考
使用C#读取XML文件的简单操作类 xml .net
//通过文件路径及文件名读取xml public XMLReader(String path, String filename); //初始化读取包下的的XML文件 public XMLReader(Package package1, String fileName); //读取WEB-INF下的xml文件 public XMLReader...
c++读取XML配置文件C++中并没有操作XML文件的标准库,因此大家需要使用各自熟悉的XML库来解决XML文件的读取与写入。XML的一个重要用途是作为程序的配置文件,存储程序运行相关的各种数据。本文总结了使用libxml2库来...
java递归读取xml文件
VB读取XML文件的操作实例,演示读取XML各个定义键的值。程序是一个专一读取XML文件的VB类,并没有使用微软的XML.DLL。因此比较有参考价值,很不错。
asp.net读取XML XMLHelper c#读取xml 通用类
提供一款php xml读取类,很简单的一个xml分析类了,它可读取指它xml文档,并且输出或取得指定节点的xml数据,本xml类代码是利用了php domdocument来解析xml文档。
VC++6.0保存与读取XML格式文件的例子,封装好的类,很好用
一个用于解析、读取xml的简单代码测试类,也简单的介绍一些用于解析和读取的对象
XmlReader和XmlTextReader类定义在System.XML...XmlTextReader类可用来读取XML文档。此类的Read方法读取此文档,直到其节点结束。 在这篇文章里,将演示如何使用XmlTextReader类来读取一个XML文档及输出数据到控制台。
用java读取txt文件 并且格式化输出读取到的信息 用java读取excel的xml格式文件 对信息进行分类 并且格式化输出有效内容
xml文件读取,xml文件操作,vb编写简单实例
详细说明以及联系方式参考我的博客: http://blog.csdn.net/andrew_wx/article/details/6680353
C# XML文件读取示例,这是一个演示类,但包含了基本的读写功能。
很好的读取XML文件的类,先将包导入到项目,不然会出错的哦
读取XML文件的封装类,项目中可能用得着。
RapidXml读取并修改XML文件,封装成单独的类,可以直接使用,调用也非常方便
VC6通过CMarkup类读取XML等文件的DEMO, 这是一个可用的程序。