XML建模

更新时间:2020-06-30 11:33:51点击次数:153次
1.根据不同的节点建不同的类
2.如果有多个相同的子节点可以用集合
3.如果想设置为唯一的话,可以根据map集合的特点:键位不可重复
4.根据堆栈方式进行添加与查询

5.

// 设置默认路径

private static final String DEFAULT_PATH = "/config.xml";

private ConfigModelFactory() {
}

public static ConfigModel createConfig() {
// 如果调用该方法,那么就使用默认路径
return createConfig(DEFAULT_PATH);
}

public static ConfigModel createConfig(String xmlpath) {
ConfigModel configModel = new ConfigModel();
// 根据路径读取XML文件
InputStream is = ConfigModelFactory.class.getResourceAsStream(xmlpath);
SAXReader sax = new SAXReader();
try {
Document read = sax.read(is);
// 读取action节点
List<Element> selectNodes = read.selectNodes("/config/action");
for (Element e : selectNodes) {
//调用ActionModel类
ActionModel  actionModel=new  ActionModel();
// 读取action的属性
String path = e.attributeValue("path");
String type = e.attributeValue("type");
//把解析的属性赋值给ActionModel里面去
actionModel.setPath(path);
actionModel.setType(type);
// 读取action节点
List<Element> selectNodes2 = e.selectNodes("forward");
for (Element w : selectNodes2) {
//把解析的属性赋值给ForwardModel类里面去
ForwardModel   forwardModel=new  ForwardModel();
//定义forward属性
String name = w.attributeValue("name");
String forwardopath = w.attributeValue("path");
String redirect = w.attributeValue("redirect");
//把解析的属性赋值给ActionModel里面去
forwardModel.setName(name);
forwardModel.setPath(forwardopath);
forwardModel.setRedirect(Boolean.parseBoolean(redirect));
//把forwardModel里面的东西添加到actionModel里面去
actionModel.push(forwardModel);
}
//把actionModel里面的东西添加到configModel里面去
configModel.push(actionModel);
}
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return configModel;
}

本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是一个个人学习交流的平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽,造成漏登,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

  • 项目经理 点击这里给我发消息
  • 项目经理 点击这里给我发消息
  • 项目经理 点击这里给我发消息
  • 项目经理 点击这里给我发消息