Java、XML与数据库编程实践(二)
来源:互联网 发布:网络前景 编辑:程序博客网 时间:2024/06/06 07:32
文件DbXmlParser.java封装了对xml文件的操作。
import javax.xml.parsers.*;
import org.w3c.dom.*;
import org.xml.sax.*;
import java.io.*;
public class DbXmlParser
{
static String xmlfile;
public DbXmlParser(String filename)
{
xmlfile=filename;
}
public static Element loadDocument()
{
try
{
//工厂
DocumentBuilderFactory dcfactory=DocumentBuilderFactory.newInstance();
//文档构造器
DocumentBuilder db=dcfactory.newDocumentBuilder();
//构造的文档
Document doc=db.parse(xmlfile);
//根元素
Element root=doc.getDocumentElement();
return root;
}catch( ParserConfigurationException e){
System.out.println("ParserConfigurationException");
e.printStackTrace();
}catch(IOException e) {
System.out.println("IOException ");
e.printStackTrace();
}catch(SAXException e) {
System.out.println("SAXException ");
e.printStackTrace();
}catch(Exception e) {
e.printStackTrace();
}
return null;
}
public ConnPara getSource()
{
Element root=loadDocument();
if( root==null) { return null; }
NodeList nodes=root.getElementsByTagName("source");
if(nodes.getLength()>0)
{
Node node=nodes.item(0);
String connclass=getChildElementValue(node,"class");
String url=getChildElementValue(node,"url");
String username=getChildElementValue(node,"user");
String password=getChildElementValue(node,"password");
return new ConnPara(connclass,url,username,password);
}
return null;
}
public ConnPara getDest()
{
Element root=loadDocument();
if( root==null) return null;
NodeList nodes=root.getElementsByTagName("dest");
if(nodes.getLength()>0)
{
Node node=nodes.item(0);
String connclass=getChildElementValue(node,"class");
String url=getChildElementValue(node,"url");
String username=getChildElementValue(node,"user");
String password=getChildElementValue(node,"password");
return new ConnPara(connclass,url,username,password);
}
return null;
}
//得到子元素的值
private String getChildElementValue(Node node,String subTagName)
{
String returnString = "";
if(node != null)
{
NodeList children = node.getChildNodes();
for(int innerLoop = 0; innerLoop < children.getLength(); innerLoop++)
{
Node child = children.item(innerLoop);
if(child == null || child.getNodeName() == null || !child.getNodeName().equals(subTagName))
continue;
Node grandChild = child.getFirstChild();
if(grandChild.getNodeValue() != null)
return grandChild.getNodeValue();
}
}
return returnString;
}
}
- Java、XML与数据库编程实践(二)
- Java、XML与数据库编程实践(二)
- Java、XML与数据库编程实践(一)
- Java、XML与数据库编程实践(三)
- Java、XML与数据库编程实践(四)
- Java、XML与数据库编程实践
- Java、XML与数据库编程实践
- Java、XML与数据库编程实践
- Java、XML与数据库编程实践(四)
- Java、XML与数据库编程实践(一)
- java多线程与并发之java并发编程实践(二)
- Java并发编程实践读书笔记(二)
- 《JAVA并发编程实践》读书笔记(二)
- Java游戏编程原理与实践教程
- JAVA笔记:Java数据库编程(二)
- Java与MySQL数据库编程
- JDBC与Java数据库编程
- JDBC 与JAVA 数据库编程
- 使用T-SQL导入多个文件数据到SQL Server中
- Apache Ant操作手册(一)
- Apache Ant操作手册(二)
- Java数据库连接池技术
- Java、XML与数据库编程实践(一)
- Java、XML与数据库编程实践(二)
- Java、XML与数据库编程实践(三)
- Java、XML与数据库编程实践(四)
- What is a Lightweight Methodology? 什么是轻量级方法?(英汉对照)
- 一个“老”程序员的技术及非技术个人回顾
- 任意一个字符串的全排列算法(可以有重复的字符)
- MSComm编程的一个误解
- JSP语法格式
- UNIX系统下informix自制开发工具构思介绍