最近在做一个项目,其中要用到xml文件,网上各种例子都有,我做了一个实现吧。相信根据注释,自己写一下很快就能上手学会。
话不多说,直接上代码:
point.xml
</district>
<district id="2" >
<group id="1" tag="1.1.9.1.0.59" desc="上库水位" unit="m"> </group>
<group id="2" tag="1.1.10.1.0.59" desc="下库水位" unit="m"> </group>
</district>
<district id="3" >
<group 机组="1" tag="1.1.2.1.55.59" desc="1号机组功率" unit="MW" ></group>
<group 机组="1" tag="1.1.2.1.22.59" desc="电压" unit="KV" ></group>
<group 机组="1" tag="1.1.2.1.58.59" desc="频率" unit="HZ"></group>
<group 机组="2" id="1" tag="1.1.3.1.36.59" desc="2号机组功率" unit="MW" ></group>
<group 机组="2" id="2" tag="1.1.3.1.3.59" desc="电压" unit="KV" ></group>
<group 机组="2" id="3" tag="1.1.3.1.39.59" desc="频率" unit="HZ" ></group>
<group id="1" 机组="3" tag="1.1.4.1.63.59" desc="3号机组功率" unit="MW"></group>
<group id="2" 机组="3" tag="1.1.4.1.6.59" desc="电压" unit="KV"></group>
<group id="3" 机组="3" tag="1.1.4.1.66.59" desc="频率" unit="HZ"></group>
<group id="1" 机组="4" tag="1.1.5.1.36.59" desc="4号机组功率" unit="MW"></group>
<group id="2" 机组="4" tag="1.1.5.1.3.59" desc="电压" unit="KV"></group>
<group id="3" 机组="4" tag="1.1.5.1.39.59" desc="频率" unit="HZ"></group>
</district>
</block>
public void initXml(){
try {
FileInputStream xmlInputStream = new FileInputStream("point2.xml");
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); // 返回documentBuilderFactory对象
DocumentBuilder db = dbf.newDocumentBuilder();// 返回db对象用documentBuilderFatory对象获得返回documentBuildr对象
Document dt = db.parse(xmlInputStream); // 得到一个DOM并返回给document对象
NodeList n1 = dt.getElementsByTagName("district");//获得district节点集合
System.out.println("一共有"+n1.getLength()+"个district节点");
if (n1!= null) {
//遍历每一个district节点
for (int i = 0; i < n1.getLength(); i++) {
Element element=(Element)n1.item(i);
String districtid=element.getAttribute("id"); //获得district节点的id属性
if(districtid.equals("1")) {
NodeList group = element.getElementsByTagName("group");//获得id=1的district节点的group子节点并遍历
for(int j=0;j<group.getLength();j++) {
Element element2=(Element)group.item(j);
String desc=element2.getAttribute("desc");
String tag=element2.getAttribute("tag");
String unit=element2.getAttribute("unit");
System.out.println("desc="+desc+"tag="+tag+"unit="+unit);
}
}
if(districtid.equals("2")) {
NodeList group2 = element.getElementsByTagName("group");
for(int j=0;j<group2.getLength();j++) {
Element element2=(Element)group2.item(j);
String desc=element2.getAttribute("desc");
String tag=element2.getAttribute("tag");
String unit=element2.getAttribute("unit");
System.out.println("desc="+desc+"tag="+tag+"unit="+unit);
}
}
if(districtid.equals("3")) {
NodeList group2 = element.getElementsByTagName("group");
for(int j=0;j<group2.getLength();j++) {
Element element2=(Element)group2.item(j);
String desc=element2.getAttribute("desc");
String tag=element2.getAttribute("tag");
String unit=element2.getAttribute("unit");
String jizu=element2.getAttribute("机组");
System.out.println("desc="+desc+"tag="+tag+"unit="+unit);
}
}
}
}
}
catch(Exception e)
{e.printStackTrace();}
}