从xml文件中读取数据加到树型菜单中.docx

上传人:rrsccc 文档编号:10003307 上传时间:2021-04-10 格式:DOCX 页数:9 大小:15.59KB
返回 下载 相关 举报
从xml文件中读取数据加到树型菜单中.docx_第1页
第1页 / 共9页
从xml文件中读取数据加到树型菜单中.docx_第2页
第2页 / 共9页
从xml文件中读取数据加到树型菜单中.docx_第3页
第3页 / 共9页
从xml文件中读取数据加到树型菜单中.docx_第4页
第4页 / 共9页
从xml文件中读取数据加到树型菜单中.docx_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《从xml文件中读取数据加到树型菜单中.docx》由会员分享,可在线阅读,更多相关《从xml文件中读取数据加到树型菜单中.docx(9页珍藏版)》请在三一文库上搜索。

1、从xml文件中读取数据加到树型菜单中读取xml文件,并将数据添加到树型菜单中1、需求树形菜单的数据从数据库中的表中查到,这个数据表由两个系统(以下分A和B系统)共同使用,现在要在B系统中的树形菜单中某个模块下加入几个模块(系统登录、修改密码、票据打印、退出系统),而且要求在A系统中的树形菜单看不到这几个模块。2、分析因为涉及到两个系统(A和B),且A和B系统的树形菜单要调用一个表数据,所以,维护表,将数据插入到表中这个方法是不可行的;另一个方法是在查询树形菜单时的方法中,直接将结果集拼加上这几个模块,这个方法肯定是可行的,但是维护起来太麻烦,每次维护都要重新编译成class文件,然后升级,所以

2、不建议用这中方法;所以,读取xml文件这个方法是比较可行的。3、实践1先写一xml文件,里面的标签属性自己定义。tree_mkmc.xmlmkbz=2kfz=nullqtip=0cls=folderleaf=truemkbz=2kfz=nullqtip=0cls=folderleaf=truemkbz=2kfz=nullqtip=0cls=folderleaf=truemkbz=2kfz=nullqtip=0cls=folderleaf=true2编写类package com.vstsoft.csi.util;import java.io.File;import java.io.IOExcep

3、tion;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.parsers.ParserConfigurationException;import org.w3c.dom.Document;import org.w3c.dom.Element;im

4、port http:/ org.w3c.dom.Node;import org.w3c.dom.NodeList;import org.xml.sax.SAXException;public class ReadXml public static final String XML_TEXT = text; /节点文本(页面上要显示的内容)public static final String XML_PARENT_TEXT = parent_text;/父节点文本public static final String XML_ID = id; /节点属性IDpublic static final

5、String XML_CHECKED = checked;/节点属性checkedpublic static final String XML_MKBZ = mkbz; /节点属性mkbzpublic static final String XML_KFZ = kfz; /节点属性kfzpublic static final String XML_CLS = cls; /节点属性clspublic static final String XML_LEAF = leaf; /节点属性leafpublic static final String XML_QTIP = qtip; /节点属性qtip

6、public static final String XML_NAME = name; /节点属性name/* 读取自定义菜单节点* return*/public List readQXxml() List resList = new ArrayList();Map resMap = null;try /实例化factoryDocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();DocumentBuilder db = factory.newDocumentBuilder();/得到当前类的路径(这里的路径是自

7、动找到当前类的路径)String claPath = this.getClass().getResource().getPath();int a = claPath.indexOf(classes/);/得到xml文件路径String xmlPath = claPath.substring(0,a)+classes/resources/tree_mkmc.xml;/解析xml文件,获得文档节点Document doc = db.parse(new File(xmlPath);/得到xml文件的树结构Element elmtInfo = doc.getDocumentElement();/得到x

8、ml树结构的父节点NodeList nodes = elmtInfo.getChildNodes();int m = 1;for (int i = 0; i /遍历树结构的一级节点Node result = nodes.item(i);if (result.getNodeType() = Node.ELEMENT_NODE& result.getNodeName().equals(top_node) /得到树结构中当前级别的子节点NodeList ns = result.getChildNodes();/得到当前子节点的父节点NamedNodeMap top_node = result.get

9、Attributes();for (int j = 0; j Node record = ns.item(j);if (record.getNodeType() = Node.ELEMENT_NODE&record.getNodeName().equals(curr_node) NamedNodeMap curr_node = record.getAttributes();resMap = new HashMap();resMap.put(this.XML_TEXT,curr_node.getNamedItem(this.XML_TEXT).getNodeValue();resMap.put(

10、this.XML_ID,curr_node.getNamedItem(this.XML_ID).getNodeValue();resMap.put(this.XML_CLS,curr_node.getNamedItem(this.XML_CLS).getNodeValue();resMap.put(this.XML_KFZ,curr_node.getNamedItem(this.XML_KFZ).getNodeValue();resMap.put(this.XML_LEAF,curr_node.getNamedItem(this.XML_LEAF).getNodeValue();resMap.

11、put(this.XML_MKBZ,curr_node.getNamedItem(this.XML_MKBZ).getNodeValue();resMap.put(this.XML_QTIP,curr_node.getNamedItem(this.XML_QTIP).getNodeValue();resMap.put(this.XML_CHECKED,curr_node.getNamedItem(this.XML_CHECKED).getNodeValue();resMap.put(this.XML_NAME,top_node.getNamedItem(this.XML_NAME).getNo

12、deValue();resMap.put(this.XML_PARENT_TEXT,top_node.getNamedItem(this.XML_PARENT_TEXT).getNodeValue();resList.add(resMap);m+; catch (ParserConfigurationException e) e.printStackTrace(); catch (SAXException e) e.printStackTrace(); catch (IOException e) e.printStackTrace();return resList;3调用ReadXml rx

13、= new ReadXml();List list = rx.readQXxml();for (int j = 0; j Map map = (Map) list.get(j);if (String.valueOf(map.get(rx.XML_NAME).equals(qxlx) StringBuffer sb = new StringBuffer();if (jsonText != null) sb.append(,);sb.append().append(rx.XML_TEXT).append( :).append(map.get(rx.XML_TEXT).append( ,).appe

14、nd(rx.XML_ID).append( :).append(map.get(rx.XML_ID).append( ,).append(rx.XML_CHECKED).append( :).append(map.get(rx.XML_CHECKED).append(,).append(rx.XML_MKBZ).append( :).append(map.get(rx.XML_MKBZ).append( ,).append(rx.XML_KFZ).append( :).append(map.get(rx.XML_KFZ).append( ,).append(rx.XML_CLS).append( :).append(map.get(rx.XML_CLS).append(,).append(rx.XML_LEAF).append(:).append(map.get(rx.XML_LEAF).append(,).append(rx.XML_QTIP).append(:).append(map.get(rx.XML_QTIP).append();System.out.println(sb.toString();jsonText += sb.toString();

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1