java中经常会读取一些配置信息,本文会说明java读取xml配置的例子:
text.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<menu1>
<meun1name>菜单一</meun1name>
<menuList>
<menu2>
<menu2Name>菜单2_1</menu2Name>
<textField>name,age,sex</textField>
<initClass>User</initClass>
</menu2>
<menu2>
<menu2Name>菜单2_2</menu2Name>
<textField>name1,age1,sex1</textField>
<initClass>Teacher</initClass>
</menu2>
</menuList>
</menu1>
java中读取文件需要的是四个类主要:
Element
DocumentBuilder
DocumentBuilderFactory
Node
读取代码:
public static void main(String[] agrs){
Element element = null;
File f = new File("D:\\ideaWorkSpace\\tam\\src\\test\\java\\config.xml");
DocumentBuilder db = null;
DocumentBuilderFactory dbf = null;
try {
// 返回documentBuilderFactory对象
dbf = DocumentBuilderFactory.newInstance();
// 返回db对象用documentBuilderFatory对象获得返回documentBuildr对象
db = dbf.newDocumentBuilder();
// 得到一个DOM并返回给document对象
Document dt = db.parse(f);
// 得到一个elment根元素
element = dt.getDocumentElement();
System.out.println("根节点:"+element.getNodeName());
NodeList nodeList = element.getChildNodes();
}
}catch (Exception e){
e.printStackTrace();
}
从开始到:
// 得到一个elment根元素
element = dt.getDocumentElement();
这句话结束,就可以得到所有xml信息。之后的处理围绕的是Node、NodeList来做就可以,但是需要注意的是,getChildNodes()会把空格和回车当做是一个节点,所以使用的时候应该加判断:
NodeList nodeList = element.getChildNodes();
for (int i = 0; i < nodeList.getLength(); i++){
Node node1 = nodeList.item(i);
if(node1 instanceof Element){
if(node1.getNodeName().equals("meun1name")){
System.out.println(node1.getTextContent());
}
}
}
上面这些代码,就可以获取meun1name节点的属性值。