初步练习下java对XML文件的操作,加深下记忆而已,代码如下:
public class Main {
public static void main(String[] args) throws IOException, ParseException {
ClassLoader cl=Thread.currentThread().getContextClassLoader();
System.out.println(cl);
String clname="cn/com/test/Main.class";
URL url=cl.getResource(clname);
System.out.println(url);
String classPath = "";
try {
classPath=(url.toURI().getPath()).replaceFirst("/", "").replaceFirst(clname, "");
System.out.println(classPath);
} catch (URISyntaxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
File file=new File(classPath+"HUAWEI_162_20111224000338_2_ADSL.xml");
SAXReader reader=new SAXReader();
try {
reader.setEncoding("GB2312");
Document document=reader.read(file);
Element element=document.getRootElement();
Element deviceInfo=element.element("deviceInfo");
Long objectTypeId=Long.parseLong(deviceInfo.attributeValue("objectTypeId"));
Element measTime=element.element("measTime");
Date date =new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dt=sdf.format(date);
System.out.println(dt);
Date measTime1 = sdf.parse(measTime.getText().trim());
System.out.println(measTime.getText().trim());
System.out.println(objectTypeId+" "+measTime1);
Element dataEsle=element.element("datas");
List<Element> dataEsles=dataEsle.elements("data");
for(Element dataEsl:dataEsles){
String oidStr= dataEsl.attributeValue("oid").trim();
String tableName= dataEsl.attributeValue("tableName").trim();
String valuesStr=dataEsl.getStringValue().trim();
String[] oidValues = valuesStr.split("\\n");
for(String oidValue : oidValues) {
String[] index_value_str = oidValue.split("=");
String oidWithIdx = index_value_str[0].trim();
String indexValue = index_value_str[1]; // 索引值
System.out.println(oidWithIdx);
System.out.println(indexValue);
}
System.out.println(oidStr);
System.out.println(tableName);
}
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}