资源文件的读取

来源:互联网 发布:淘宝公益宝贝计划 编辑:程序博客网 时间:2024/05/16 07:31

1.XMLParser

public class XMLParser {

protected Element elapp;
protected Document doc;
protected String filename;


public XMLParser(InputStream ins) {
elapp=null;
doc=null;
filename=null;
DocumentBuilderFactory xmlDocfactory = DocumentBuilderFactory.newInstance();
xmlDocfactory.setNamespaceAware(false);
xmlDocfactory.setValidating(false);
xmlDocfactory.setIgnoringElementContentWhitespace(true);
try {
DocumentBuilder db = xmlDocfactory.newDocumentBuilder();
doc = db.parse(ins);
elapp = doc.getDocumentElement();
} catch (Exception e) {
}
}


public String getValue(String sysname,String name)
{
String value=null;
Element child = getChildElement(getChildElement(sysname), name);
value=child==null?null:getElementValue(child);
return value;
}

private Element getChildElement(String childName)
{
return getChildElement(elapp,childName);
}

private synchronized Element getChildElement(Element parent,String childName)
{
if(parent!=null)
{
NodeList children=parent.getChildNodes();
int size=children.getLength();
for(int i=0;i<size;i++)
{
Node node=children.item(i);
if(node.getNodeType()==1)
{
Element element=(Element) node;
if(childName.equals(element.getNodeName()))
{
return element;
}
}
}
}
return null;
}

private synchronized String getElementValue(Element element)
{
NodeList nodes=element.getChildNodes();
if(nodes!=null)
{
StringBuffer sb=new StringBuffer();
for(int i=0;i<nodes.getLength();i++)
{
Node node=nodes.item(i);
if(node.getNodeType()==4 || node.getNodeType()==3)
{
sb.append(node.getNodeValue());
}
}

if(sb.length()>0)
{
return sb.toString();
}
}

return null;
}

public String getValue(String name)
{
String value = null;
Element child = getChildElement(name);
value = child == null ? null : getElementValue(child);
return value;
}

}