您的位置:首页 > 编程语言 > Java开发

java解析xml格式字符串

2013-08-07 14:48 417 查看
public class ParsingXML {

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>";
ParsingXML px = new ParsingXML();
String xml = px.ParsingXML(in);
System.out.println(xml);

}

private String ParsingXML(String in){
String xml = "";
in = in.substring(in.indexOf("?>")+2);
while(in.length() > 0){//多个大类
String leibq = getBQ(in);
xml += leibq.substring(0, leibq.length()-1)+"\n";
int bqe = in.indexOf("</"+leibq);
int bqe2 = bqe + ("</"+leibq).length();
String lei = in.substring(leibq.length()+1, bqe);

String stbq = getBQ(lei);
int chbqs = lei.indexOf(">")+1;
lei = lei.substring(chbqs,lei.length()-("</"+stbq).length());
int n=1;
if(lei.indexOf("</"+stbq+"<"+stbq) > 0){//有多个实体
String[] shitis = lei.split("</"+stbq+"<"+stbq);

for(String st : shitis){
st = st.substring(1, st.length()-2);
xml += "  "+stbq.substring(0, stbq.length()-1)+n+"\n";
while(st.indexOf("\"") > 0){
int index = st.indexOf("\"");
String sxorval = st.substring(0,index);
if(sxorval.indexOf("=") > 0){
xml += "\t"+sxorval.replace("=", "").trim() + " = ";
}
else{
xml += sxorval+"\n";
}
st = st.substring(index+1);
}
n++;

}

}else{
String st = lei;
st = st.substring(1, st.length()-2);
xml += stbq.substring(0, stbq.length()-1)+n+"\r\n\t";
while(st.indexOf("\"") > 0){
int index = st.indexOf("\"");
String sxorval = st.substring(0,index);
if(sxorval.indexOf("=") > 0){
xml += "  "+sxorval.replace("=", "").trim() + " = ";
}
else{
xml += sxorval;
}
st = st.substring(index+1);
}
}
in = in.substring(bqe2);
}
return xml;
}

private String getBQ(String chxml){
return chxml.substring(1,chxml.indexOf(">")+1);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: