.xml建模
2019-05-27 20:56
309 查看
文章目录
什么叫做xml建模?
建模的由来
(一)就是将指定的xml字符串当作对象来操作;
(二)以面向对象的编程思想,描述xml资源文件主要的就是把一个标签当做对象,而他的属性值当做元素。(形成所谓的键值对)
private Map<String, ActionModel> acMap=new HashMap<>(); public void push(ActionModel actionModel) { acMap.put(actionModel.getPath(), actionModel); } public ActionModel pop(String path) { return acMap.get(path); } public static void main(String[] args) { ConfigModel configModel=new ConfigModel(); ActionModel a=configModel.pop(""); }
xml建模有哪些优点?
(一)只需要调用指定的方法就可以完成预定的字符串获取;
(二)提高代码的复用性。
案例:
(一)思路:
1、分析需要被建模的文件中有那几个对象;
2、每个对象拥有的行为以及属性;
3、定义对象从小到大(从里到外);
4、通过23种的设计模式中的工厂模式,解析xml生产出指定对象。
(二)步骤
建模分两步:
1、以面向对象的编程思想,描述xml资源文件;
2、将xml文件中内容封装进model实体对象。
(二)案例:
创建一个工厂,写好对应的动作和方式,并赋值(填充内容):
public static ConfigModel build() throws Exception { return build("config.xml"); } private static ConfigModel build(String xmlpath) throws Exception { // TODO Auto-generated method stub ConfigModel configModel=new ConfigModel(); InputStream in = ConfigModelFactory.class.getResourceAsStream(xmlpath); SAXReader saxReader=new SAXReader(); //标签,进行作用域的扩充 Document doc = saxReader.read(in); ActionModel actionModel=null; ForwardModel forwardModel=null; List<Element> actionEles = doc.selectNodes("/config/action"); for(Element actionEle : actionEles){ actionModel=new ActionModel(); //接下来要往actionModel中填充内容(属性) actionModel.setPath(actionEle.attributeValue("path")); actionModel.setType(actionEle.attributeValue("type")); List<Element> forwordEles = actionEle.selectNodes("forward"); for (Element forwordEle : forwordEles) { forwardModel=new ForwardModel(); //接下来要往forwardModel中填充内容(属性) forwardModel.setName(forwordEle.attributeValue("name")); forwardModel.setPath(forwordEle.attributeValue("path")); forwardModel.setRedirect(!"false".equals(forwordEle.attributeValue("path"))); actionModel.push(forwardModel); } configModel.push(actionModel); } return configModel; }
下一步,进行输出与打印:
public static void main(String[] args) throws Exception { ConfigModel configModel = ConfigModelFactory.build(); ActionModel actionModel = configModel.pop("/loginAction");//写好所需的路径 System.out.println(actionModel.getType()); ForwardModel forwardModel = actionModel.pop("a");//所需的属性 System.out.println(forwardModel.getPath()+" "+forwardModel.isRedirect()); }
相关文章推荐
- XML建模
- XML建模
- 本体建模与语义Web知识发现 4 基于频繁模式挖掘的XML网页分类技术
- 本体建模与语义Web知识发现 2 XML与数据库
- XML建模
- XML建模
- Web 服务建模,第 1 部分: XML 模式
- xml建模
- 【XML建模】
- Web服务建模(一):XML模式
- Android实现XML解析技术
- jdom解析xml简单事例
- 用来控制 XML 序列化的属性
- 解析树形结构,拼XML
- 动画Animation 和 xml 解析Animation
- XML总结
- hibernate.cfg.xml配置
- XML元素的变现方式
- 网络编程之android后台取服务器端xml解析之dom解析
- golang android xml parse