Java读取XML

public class Untitled1 {

public static void main(String[] args) {
try {
org.jdom.input.SAXBuilder sb = new org.jdom.input.SAXBuilder();
org.jdom.Document doc = sb.build(new java.io.File("F:\\xsl\\x1.xml")); //改这个路径
org.jdom.Element root = doc.getRootElement(); //根节点
String class_name = root.getChildText("class_name"); //根节点之下的子节点class_name的内容
String class_purview = root.getChildText("class_purview") == null ? "" : root.getChildText("class_purview");
System.out.println(class_purview +" class " + class_name + "{"); //打印类信息
java.util.List childrens = root.getChildren(); //得到所有属于根节点下的同级自节点
for (int i = 0; i < childrens.size(); i++) { //逐个打印 属性 信息
org.jdom.Element ele = (org.jdom.Element) childrens.get(i);
if (ele.getName().equals("property")) {
String property_purview = ele.getChildText("property_purview")==null?"":ele.getChildText("property_purview")+" ";
String property_name = ele.getChildText("property_name");
String property_value = ele.getChildText("property_value")==null?"":"="+ele.getChildText("property_value");
String property_type = ele.getChildText("property_type");
System.out.println( property_purview + property_type +" "+ property_name + property_value +";");
}
}
for (int i = 0; i < childrens.size(); i++) { //逐个打印方法信息
org.jdom.Element ele = (org.jdom.Element) childrens.get(i);
if (ele.getName().equals("method")) {
String method_name = ele.getChildText("method_name");
String return_type = ele.getChildText("return_type");
String method_purview = ele.getChildText("method_purview") == null ? "" : ele.getChildText("method_purview");
java.util.List methodChildrens = ele.getChildren();
String parameter_stat="";
for (int j = 0; j < methodChildrens.size(); j++) {
org.jdom.Element methodEle = (org.jdom.Element) methodChildrens.get(j);
if (methodEle.getName().equals("parameter"))
{
String parameter_return_type = methodEle.getChildText("parameter_return_type");
String parameter_name = methodEle.getChildText("parameter_name");
parameter_stat = parameter_stat + parameter_return_type + " " + parameter_name + ",";
}
}
try {
parameter_stat = parameter_stat.substring(0,parameter_stat.length()-1);
}
catch (Exception ex) {}
System.out.println( method_purview + " "+ return_type +" "+ method_name + "("+ parameter_stat +"){");
System.out.println("}");
}
}
System.out.println("}");
}
catch (java.lang.Exception ex) {
ex.printStackTrace();
}
}
}

JAVA文件!!!

===============================================

对应上面的XML文件!!

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE class SYSTEM "X1.dtd">
<class>
<class_purview>public</class_purview>
<!--类访问权限 可选-->
<class_name>dsjkdsa</class_name>
<!--类名 必选-->
<method>
<!--类的方法 可选-->
<method_purview>publie</method_purview>
<!--方法的访问权限 可选-->
<method_name>dd</method_name>
<!--方法名 必选-->
<return_type>int</return_type>
<!--方法的返回类型 必选-->
<parameter>
<!--方法的参数 可选-->
<parameter_name>aa</parameter_name>
<!--参数名 必选-->
<parameter_return_type>int</parameter_return_type>
</parameter>
<!--参数类型 必选-->
</method>
<property>
<!--类的属性 可选-->
<property_purview>private</property_purview>
<!--属性的访问权限 可选-->
<property_name>a</property_name>
<!--属性名 必选-->
<property_type>int</property_type>
<!--属性类型 必选-->
<property_value>9</property_value>
<!--属性的默认值 可选-->
</property>
<!--*********************************************************-->
<method>
<method_purview>public</method_purview>
<method_name>getName</method_name>
<return_type>String</return_type>
</method>
<method>
<method_purview>public</method_purview>
<method_name>setName</method_name>
<return_type>String</return_type>
<parameter>
<parameter_name>a</parameter_name>
<parameter_return_type>String</parameter_return_type>
</parameter>
<parameter>
<parameter_name>b</parameter_name>
<parameter_return_type>java.lang.Object</parameter_return_type>
</parameter>
<parameter>
<parameter_name>c</parameter_name>
<parameter_return_type>int</parameter_return_type>
</parameter>
</method>
<property>
<property_purview>private</property_purview>
<property_name>name</property_name>
<property_type>String</property_type>
<property_value>""</property_value>
</property>
<property>
<property_name>jpane</property_name>
<property_type>javax.swing.JPanel</property_type>
<property_value>new javax.swing.JPanel()</property_value>
</property>
<property>
<property_name>but</property_name>
<property_type>javax.swing.JButton</property_type>
</property>
</class>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值