XmlHelper.java
上传用户:hensond
上传日期:2021-12-27
资源大小:817k
文件大小:2k
源码类别:

软件工程

开发平台:

Java

  1. package com.company.helper;
  2. import java.io.FileInputStream;
  3. import java.io.InputStream;
  4. import java.util.List;
  5. import org.dom4j.Attribute;
  6. import org.dom4j.Document;
  7. import org.dom4j.Element;
  8. import org.dom4j.Node;
  9. import org.dom4j.io.SAXReader;
  10. /**
  11.  * @author cbf4Life cbf4life@126.com
  12.  * I'm glad to share my knowledge with you all.
  13.  */
  14. public class XmlHelper {
  15. //单例对象
  16. private static Document doc;
  17. //默认的Action的XPATH路径
  18. private final static String DEFAULT_ACTION_PATH = "/mvc/action";
  19. public XmlHelper(){
  20. this("c:/ActionConfig.xml");
  21. }
  22. //初始化一个XML DOCUMENT对象
  23. public XmlHelper(String xmlFilePath){
  24. try {
  25. InputStream xmlStream = new FileInputStream(xmlFilePath);
  26. doc = (new SAXReader()).read(xmlStream); 
  27. } catch (Exception e) {
  28. e.printStackTrace();
  29. }
  30. }
  31. //根据Action名称查找出节点
  32. @SuppressWarnings("unchecked")
  33. public Element getNodeByActionName(String actionName){
  34. //取得所有节点
  35. List<Node> nodeList = doc.selectNodes(DEFAULT_ACTION_PATH);
  36. //遍历所有的Node节点
  37. System.out.println(nodeList.size());
  38. for(Node node:nodeList){
  39. Element e = (Element)node;
  40. Attribute a = e.attribute("name");
  41. //找到名字匹配的action
  42. if(a.getText().equals(actionName)){
  43. return e;
  44. }
  45. }
  46. return null;
  47. }
  48. //定义个访问者
  49. public static void main(String[] args) {
  50. XmlHelper xmlhelper = new XmlHelper();
  51. Element e=xmlhelper.getNodeByActionName("loginAction");
  52. ActionNode node = new XmlActionNode(e);
  53. System.out.println(node.getView("success"));
  54. }
  55. }