Xml文件在项目中常常被用做配置文件,用来存储一些可能会经常发生改变的配置信息。下面的代码是我在做Android开发时候写的一段读取android配置文件的代码。
package com.zhang.utils;
import java.io.IOException;
import java.io.InputStream;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
import android.content.Context;
import android.content.res.AssetManager;
public class ConfigReader {
private final String fileName = "config.xml";
private InputStream input;
private Context context;
private Document document;
public ConfigReader(Context context){
this.context = context;
}
private InputStream loadFile() throws IOException{
AssetManager manager = context.getResources().getAssets();
return manager.open(fileName);
}
public String getValue(String key){
return null;
}
private void parse() throws ParserConfigurationException, SAXException, IOException{
input = loadFile();
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder db = factory.newDocumentBuilder();
document = db.parse(input);
}
public String getServerConfig(String key) throws ParserConfigurationException, SAXException, IOException{
parse();
String value = null;
if(document != null && key != null){
Element root = document.getDocumentElement();
NodeList list = root.getElementsByTagName(key);
for(int i=0;i<list.getLength();i++){
Node node = list.item(i);
//Log.i("debug", node.getTextContent());
value = node.getTextContent();
}
}
return value;
}
}