50,533
社区成员
发帖
与我相关
我的任务
分享
public static void main(String[] args) {
// String in = "<?xml version=\"1.0\" ?>" +
// "<Books><Book><Name = \"The C++ Programming Language\" Author=\"Bjarne Stroustrup\">" +
// "</Book><Book><Name = \"Effective C++\" Author = \"Scott Meyers\"></Book></Books>";
// System.out.println(in);
System.out.println(ParsingXML(Fisread("E://test.xml")));
}
public static String ParsingXML(String in){
StringBuffer sb = new StringBuffer();
String[] xmlStrs = in.split("</");
for (int i = 0; i < xmlStrs.length; i++) {
xmlStrs[i] = xmlStrs[i].replace("<", "").replace(">", "").replace("/>", "");
}
sb.append(xmlStrs[xmlStrs.length-1]+"\n");
for (int i = 0; i < xmlStrs.length-2; i++) {
sb.append(" "+xmlStrs[xmlStrs.length-2]+" "+(i+1)+"\n");
if(i==0){
xmlStrs[i] = xmlStrs[i].replace(xmlStrs[i].substring(xmlStrs[i].indexOf("?"),xmlStrs[i].lastIndexOf("?")+1), "").replace(xmlStrs[xmlStrs.length-1], "").replace(xmlStrs[xmlStrs.length-2], "");
}else{
xmlStrs[i] = xmlStrs[i].replace(xmlStrs[xmlStrs.length-i], "").replace(xmlStrs[xmlStrs.length-2], "");
}
String[] pars = xmlStrs[i].split("\"");
for (int j = 0; j < pars.length-1;) {
sb.append("\t"+pars[j].trim().replace("=", ":").replace(" ", "")+pars[j+1]+"\n");
j+=2;
}
}
return sb.toString();
}
private static String Fisread(String path){
File f = new File(path);
if(!f.exists()){
return null;
}
try {
FileInputStream fis = new FileInputStream(f);
byte[] b = new byte[(int)f.length()];
fis.read(b);
fis.close();
return new String(b);
} catch (IOException e) {
}
return null;
}