利用 Jaxp (Sax) 解析xml文件--- 解析指定节点的值

本文介绍了一个Java类,该类用于从XML配置文件中解析SQL Server的连接信息,包括用户名、密码、URL和驱动等关键参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package tao.test;

import java.io.File;

import java.io.IOException;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import javax.xml.parsers.ParserConfigurationException;

import javax.xml.parsers.SAXParser;

import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.Attributes;

import org.xml.sax.SAXException;

import org.xml.sax.helpers.DefaultHandler;

public class SqlServer {

private String username;

private String password;

private String url;

private String driver;

/**

* 存储结果

*/

Map map = new HashMap();

/**

* @throws IOException

* @throws SAXException

* @throws ParserConfigurationException

*/

public SqlServer() throws SAXException, IOException, ParserConfigurationException {

String userDir = System.getProperty("user.dir");

String eosConfig = new File(userDir).getParent()

+ "/eosserver/config/eosconfig.xml";

SAXParserFactory spf = SAXParserFactory.newInstance();

SAXParser sp = spf.newSAXParser();

// MyHander 是一个内部类

sp.parse(new File(eosConfig), new MyHandler());

this.username = map.get("username").toString().trim();

this.password = map.get("password").toString().trim();

this.url = map.get("jdbcurl").toString().trim();

this.driver = map.get("jdbcdriver").toString().trim();

}

public String getUsername() {

return username;

}

public void setUsername(String username) {

this.username = username;

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password;

}

public String getUrl() {

return url;

}

public void setUrl(String url) {

this.url = url;

}

public String getDriver() {

return driver;

}

public void setDriver(String driver) {

this.driver = driver;

}

/**

*

*/

class MyHandler extends DefaultHandler {

List keys = new ArrayList() {

{

add("username");

add("password");

add("jdbcurl");

add("jdbcdriver");

}

};

String key = null;

private int index = 0;

private int flag = index;

public void characters(char ch[], int start, int length)

throws SAXException {

String value = new String(ch, start, length);

if (flag == index - 1) {

map.put(key, value);

flag = index;

}

}

public void startElement(String uri, String localName, String qName,

Attributes attr) throws SAXException {

if ("configValue".equals(qName)) {

if (keys.contains(attr.getValue("key"))) {

key = attr.getValue("key");

index++;

}

}

}

}

public static void main(String[] args) throws SAXException, IOException, ParserConfigurationException {

new SqlServer();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值