📄 parsexml.java
字号:
package org.lenovoAC.ParseXMLFile;
import java.util.Properties;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import java.net.URL;
import java.io.File;
import java.net.HttpURLConnection;
import java.io.InputStream;
import java.io.FileNotFoundException;
import java.net.MalformedURLException;
public class ParseXML
{
//定义一个Properties 用来存放 dbhost dbuser dbpassword的值
private Properties props;
//这里的props
public Properties getProps()
{
return this.props;
}
/**
* @param filename String 文件名(包括文件路径)
* @throws Exception
*/
public void parseByFile(String filename) throws Exception
{
//将我们的解析器对象化
ConfigParser handler = new ConfigParser();
//获取SAX工厂对象
SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setNamespaceAware(false);
factory.setValidating(false);
//获取SAX解析
SAXParser parser = factory.newSAXParser();
//得到配置文件myenv.xml所在目录. tomcat中是在WEB-INF/classes
//下例中BeansConstants是用来存放xml文件中配置信息的类,可以自己代替或定义
// URL confURL = BeansConstants.class.getClassLoader().getResource(filename);
try
{
File file = new File(filename);
//将解析器和解析对象myenv.xml联系起来,开始解析
parser.parse(file, handler);
//获取解析成功后的属性 以后 我们其他应用程序只要调用本程序的props就可以提取出属性名称和值了
props = handler.getProps();
}
catch (FileNotFoundException e)
{
System.out.println("解析xml文件失败!找不到文件:" + filename + ":" + e);
}
catch (Exception e)
{
System.out.println("解析xml文件失败!xml格式错误!");
e.printStackTrace();
}
finally
{
factory = null;
parser = null;
handler = null;
}
}
/**
* 通过得到的http地址输入流来解析xml文件
* @param filename String
* @throws Exception
*/
public void parseByURL(String httpURL) throws Exception
{
//将我们的解析器对象化
ConfigParser handler = new ConfigParser();
//获取SAX工厂对象
SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setNamespaceAware(false);
factory.setValidating(false);
//获取SAX解析
SAXParser parser = factory.newSAXParser();
//得到配置文件myenv.xml所在目录. tomcat中是在WEB-INF/classes
//下例中BeansConstants是用来存放xml文件中配置信息的类,可以自己代替或定义
// URL confURL = BeansConstants.class.getClassLoader().getResource(filename);
//File file=new File(filename);
try
{
URL url = new URL(httpURL);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
InputStream fis = connection.getInputStream();
//将解析器和解析对象myenv.xml联系起来,开始解析
// parser.parse(file, handler);
parser.parse(fis, handler);
//获取解析成功后的属性 以后 我们其他应用程序只要调用本程序的props就可以提取出属性名称和值了
props = handler.getProps();
}
catch (MalformedURLException e)
{
System.out.println("解析网络资源xml文件失败!请求的地址不存在:" + e);
e.printStackTrace();
throw e;
}
catch (Exception e)
{
System.out.println("解析网络资源xml文件失败!" + e);
e.printStackTrace();
throw e;
}
finally
{
factory = null;
parser = null;
handler = null;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -