1. javascript读取xml文件构建下拉菜单
二级联动下拉菜单——职业:
- select name="jobType" id="jobTypeUserID" USEDATA="jobUserData" SUBCLASS="1"
- select name="jobName" id="jobNameUserID" USEDATA="jobUserData" SUBCLASS="2"
由js代码读取xml文件中的内容:
- var jobUserLinkage = new Linkage("jobUserData", "xml/managemember/job.xml");
- jobUserLinkage.BLANK_SELECT = "保密";
- jobUserLinkage.init();
- jobUserLinkage.initLinkage("jobUserData","${memberForm.jobType}",1);
- jobUserLinkage.initLinkage("jobUserData","${memberForm.jobName}",2);
job.xml
- xml version="1.0" encoding="GBK"?>
- <TreeNodes>
- <TreeNode Desc="计算机/互联网/通讯" Value="1">
- <TreeNode Desc="首席执行官" Value="101" />
- <TreeNode Desc="首席技术执行官" Value="102"/>
- <TreeNode Desc="高级工程师" Value="103"/>
- TreeNode>
- <TreeNode Desc="销售" Value="2">
- <TreeNode Desc="销售总监" Value="201" />
- <TreeNode Desc="销售经理" Value="202" />
- TreeNode>
- TreeNodes>
引用了两个js文件,分别是prototype.js和linkage.js文件(在附件中js.rar)。
2. java读取xml文件
读取xml文件的工具类ParseXML.java:
ParseXML.java 代码
- import java.io.*;
- import org.dom4j.Document;
- import org.dom4j.DocumentException;
- import org.dom4j.Node;
- import org.dom4j.XPath;
- import org.dom4j.io.SAXReader;
- /**
- * XMLFile--XML文件
- * xPath--xpath string
- * value--attribute name
- */
- public class ParseXML {
- public static String getData(String XMLFile,String xPath,String value) {
- String result="";
- Document document;
- try { //读取xml文件
- SAXReader reader = new SAXReader();
- document = reader.read(new File(XMLFile));
- } catch (DocumentException e) {
- e.printStackTrace();
- return result;
- }
- XPath x = document.createXPath(xPath);
- Node node=x.selectSingleNode(document);
- if(node!=null)
- result=node.valueOf(value);
- return result;
- }
- }
根据actionform得到的jobType和jobName,构建xPath,调用读取job.xml中的Desc值
- String XMLFile="job.xml";
- String xPath="//TreeNode[@Value='"+f.getJobType()+"']";
- String value="@Desc";
- String strJobType=ParseXML.getData(XMLFile, xPath,value);
- xPath="//TreeNode[@Value='"+f.getJobName()+"']";
- String strJobName=ParseXML.getData(XMLFile, xPath,value);