怎么读XML文件?急! 麻烦给个例子!谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 看解析xml的api,such as dom4j,jdom and so on! dom4j读取比较简单,但是效率不怎样网上比较多,嗖嗖就有 package project.util.xml;import java.io.*;import java.util.*;import javax.servlet.http.*;import org.apache.log4j.*;import org.jdom.*;import org.jdom.input.*;/** * <p>Title: <font color="steelblue" size="10">读取xml文件信息</font></p> * <p>Description: <font color="steelblue">从XML配置文件中获得配置信息。excerpt form jdom。</font></p> * <p>Copyright: <font color="steelblue">Copyright (c) 2004</font></p> * <p>Company: <font color="steelblue">Harmonious</font></p> * @author <font color="steelblue">TZL</font> * @version <font color="steelblue">1.0</font> */public class XMLReader { static public Logger log = Logger.getLogger(XMLReader.class); protected Element m_RootElement = null; protected String m_webAppPath = null; /** * <font color="orange">构造函数。</font> * @param xmlFile <font color="steelblue">要读取的配置文件的绝对路径。</font> */ public XMLReader(String xmlFile) { m_webAppPath = null; try { SAXBuilder builder = new SAXBuilder(); document.nbspdoc = null; doc = builder.build(new FileInputStream(xmlFile)); m_RootElement = doc.getRootElement(); } catch (IOException ex) { log.error("XMLReader构造时出现IO错误:" + ex.toString()); } catch (JDOMException ex1) { log.error("XMLReader构造时分析XML文件出错:" + ex1.toString()); } catch (Exception ex) { log.error("XMLReader 构造出错:" + ex.toString()); } } public XMLReader(HttpServlet servletObj) { m_webAppPath = servletObj.getServletContext().getRealPath("/"); String configFileName = m_webAppPath + "XmlConfig/Config.xml"; try { SAXBuilder builder = new SAXBuilder(); document.nbspdoc = null; doc = builder.build(new FileInputStream(configFileName)); m_RootElement = doc.getRootElement(); } catch (IOException ex) { log.error("XMLReader构造时出现IO错误(/XmlConfig/Config.xml):" + ex.toString()); } catch (JDOMException ex1) { log.error("XMLReader构造时分析XML文件出错(/XmlConfig/Config.xml):" + ex1.toString()); } catch (Exception ex) { log.error("XMLReader构造出错(/XmlConfig/Config.xml):" + ex.toString()); } } public String getWebAppPath() { return m_webAppPath; } /** * <font color="orange">从配置文件中获得配置信息。</font> * @param key <font color="steelblue">要获取的配置名称。</font> * @param curRootName <font color="steelblue">查找的起始节点名称,如果为null从根开始查找。</font> * @return <font color="tomato">配置的字符串。</font> */ public String getElementvalue(String curRootName, String key) { String value = null; Element curRoot = getElement(null, curRootName); if (null == curRoot) { curRoot = m_RootElement; } Element keyNode = getElement(curRoot, key); if (null != keyNode) { value = keyNode.getTextTrim(); } return value; } /** * <font color="orange">根据名字获得节点。广度遍历,递归调用。</font> * @param nodeName <font color="steelblue">节点的名字。</font> * @param curRoot <font color="steelblue"> 从开始查找的起始节点,如果为null从根开始查找。</font> * @return <font color="tomato">返回从指定节点下找到的第一个节点。如果没有返回null。</font> */ private Element getElement(Element curRoot, String nodeName) { Element retElement = null; if (null == nodeName) return m_RootElement; if (null == curRoot) { curRoot = m_RootElement; } if (null != curRoot) { retElement = curRoot.getChild(nodeName); if (null == retElement) { List nestElements = curRoot.getChildren(); Iterator iterator = nestElements.iterator(); while (iterator.hasNext() && null == retElement) { retElement = getElement( (Element) iterator.next(), nodeName); } } } return retElement; } /** * <font color="orange">获得指定节点的属性。</font> * @param elementName <font color="steelblue">节点的名称。</font> * @param attName <font color="steelblue">要获得的属性的名称。</font> * @return <font color="tomato">要查找的属性的值。</font> */ public String getElementAtrribute(String elementName, String attName) { Element el = getElement(null, elementName); if (null == el) return null; return el.getAttributevalue(attName); }} sax.Jdom例子自己找,长着脑袋瓜子是要用的。 第一次用迭代和链表解决问题,有几个问题不太明白 关于java读取xml文件请教 java里String和StringBuffer两个的区别总共有多少? ajax如何实现异步提交 问下关于继承的问题 在Java中,“目录”被看作是?? 这个打印出来的字符串是什么意思 谁能给解释一下框架是什么意思 请大家帮忙,这是什么问题?如何解决。(急) java初学者提问,关于方法的调用 java怎么屏幕截图并转换成图片?????? TOMCAT5.0默认路径的配置问题.
读取比较简单,但是效率不怎样
网上比较多,嗖嗖就有
import java.util.*;
import javax.servlet.http.*;
import org.apache.log4j.*;
import org.jdom.*;
import org.jdom.input.*;/**
* <p>Title: <font color="steelblue" size="10">读取xml文件信息</font></p>
* <p>Description: <font color="steelblue">从XML配置文件中获得配置信息。excerpt form jdom。</font></p>
* <p>Copyright: <font color="steelblue">Copyright (c) 2004</font></p>
* <p>Company: <font color="steelblue">Harmonious</font></p>
* @author <font color="steelblue">TZL</font>
* @version <font color="steelblue">1.0</font>
*/public class XMLReader { static public Logger log = Logger.getLogger(XMLReader.class);
protected Element m_RootElement = null;
protected String m_webAppPath = null; /**
* <font color="orange">构造函数。</font>
* @param xmlFile <font color="steelblue">要读取的配置文件的绝对路径。</font>
*/
public XMLReader(String xmlFile) {
m_webAppPath = null;
try { SAXBuilder builder = new SAXBuilder();
document.nbspdoc = null;
doc = builder.build(new FileInputStream(xmlFile));
m_RootElement = doc.getRootElement();
}
catch (IOException ex) {
log.error("XMLReader构造时出现IO错误:" + ex.toString());
}
catch (JDOMException ex1) {
log.error("XMLReader构造时分析XML文件出错:" + ex1.toString());
}
catch (Exception ex) {
log.error("XMLReader 构造出错:" + ex.toString());
}
}
public XMLReader(HttpServlet servletObj) {
m_webAppPath = servletObj.getServletContext().getRealPath("/");
String configFileName = m_webAppPath + "XmlConfig/Config.xml"; try {
SAXBuilder builder = new SAXBuilder();
document.nbspdoc = null;
doc = builder.build(new FileInputStream(configFileName));
m_RootElement = doc.getRootElement();
}
catch (IOException ex) {
log.error("XMLReader构造时出现IO错误(/XmlConfig/Config.xml):" + ex.toString());
}
catch (JDOMException ex1) {
log.error("XMLReader构造时分析XML文件出错(/XmlConfig/Config.xml):" + ex1.toString());
}
catch (Exception ex) {
log.error("XMLReader构造出错(/XmlConfig/Config.xml):" + ex.toString());
}
} public String getWebAppPath() {
return m_webAppPath;
} /**
* <font color="orange">从配置文件中获得配置信息。</font>
* @param key <font color="steelblue">要获取的配置名称。</font>
* @param curRootName <font color="steelblue">查找的起始节点名称,如果为null从根开始查找。</font>
* @return <font color="tomato">配置的字符串。</font>
*/
public String getElementvalue(String curRootName, String key) {
String value = null;
Element curRoot = getElement(null, curRootName);
if (null == curRoot) {
curRoot = m_RootElement;
}
Element keyNode = getElement(curRoot, key);
if (null != keyNode) {
value = keyNode.getTextTrim();
}
return value;
} /**
* <font color="orange">根据名字获得节点。广度遍历,递归调用。</font>
* @param nodeName <font color="steelblue">节点的名字。</font>
* @param curRoot <font color="steelblue"> 从开始查找的起始节点,如果为null从根开始查找。</font>
* @return <font color="tomato">返回从指定节点下找到的第一个节点。如果没有返回null。</font>
*/
private Element getElement(Element curRoot, String nodeName) {
Element retElement = null; if (null == nodeName)
return m_RootElement; if (null == curRoot) {
curRoot = m_RootElement;
} if (null != curRoot) {
retElement = curRoot.getChild(nodeName);
if (null == retElement) {
List nestElements = curRoot.getChildren();
Iterator iterator = nestElements.iterator();
while (iterator.hasNext() && null == retElement) {
retElement = getElement( (Element) iterator.next(), nodeName);
}
}
} return retElement;
} /**
* <font color="orange">获得指定节点的属性。</font>
* @param elementName <font color="steelblue">节点的名称。</font>
* @param attName <font color="steelblue">要获得的属性的名称。</font>
* @return <font color="tomato">要查找的属性的值。</font>
*/
public String getElementAtrribute(String elementName, String attName)
{
Element el = getElement(null, elementName);
if (null == el)
return null; return el.getAttributevalue(attName);
}}
Jdom
例子自己找,长着脑袋瓜子是要用的。