java解析xml(使用jdom解析xml)
第一步:
装入jar包:下载地址:http://www.jdom.org/downloads/index.html
第二步:
在项目中加入jar包 jdom-2.06.jar
放入lib中
第三步:
你需要有一个xml来,让你解析
<?xml version="1.0" encoding="UTF-8"?> <Configuration> <Key Name="China"> <Value Name="TextKey">China</Value> <Value Name="Enabled">true</Value> <Value Name="PhotoIDWidth">first PhotoIDWidth</Value> <Value Name="PhotoIDHeight">38</Value> <Key Name="Adult"> <Value Name="CrownPercent">0.10</Value> <Value Name="HeadPercent">0.60AdultHeadPercent</Value> </Key> <Key Name="Child"> <Value Name="CrownPercent">0.10</Value> <Value Name="HeadPercent">0.60ChildHeadPercent</Value> </Key> </Key> <Key Name="Australia"> <Value Name="TextKey">Australia</Value> <Value Name="Enabled">true</Value> <Value Name="PhotoIDWidth">zhongjian PhotoIDWidth</Value> <Value Name="PhotoIDHeight">45</Value> <Key Name="Adult"> <Value Name="CrownPercent">0.061</Value> <Value Name="HeadPercent">0.756"Adult"HeadPercent</Value> </Key> <Key Name="Child"> <Value Name="CrownPercent">0.072</Value> <Value Name="HeadPercent">0.711ChildHeadPercent</Value> </Key> </Key> <Key Name="Austria"> <Value Name="TextKey">Austria</Value> <Value Name="Enabled">true</Value> <Value Name="PhotoIDWidth">last PhotoIDWidth</Value> <Value Name="PhotoIDHeight">45</Value> <Key Name="Adult"> <Value Name="CrownPercent">0.064</Value> <Value Name="HeadPercent">0.744AdultHeadPercent</Value> </Key> <Key Name="Child"> <Value Name="CrownPercent">0.078</Value> <Value Name="HeadPercent">0.689ChildHeadPercent</Value> </Key> </Key> </Configuration>
第四部:
然后你需要有一个java来办这件事:
package ReadJdom; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.jdom2.Document; import org.jdom2.Element; import org.jdom2.JDOMException; import org.jdom2.input.SAXBuilder; public class ReadJm { public static void main(String[] args) throws JDOMException, IOException { //新建构造器解析xml SAXBuilder sax = new SAXBuilder(); //建一个文档去接受数据 Document doc = sax.build("readjm.xml"); //获取根元素 Element root = doc.getRootElement(); //定位到<Configuration> -> <Key> List<Element> list = root.getChildren("Key"); List<Element> children = new ArrayList<Element>(); List<Element> childrens = new ArrayList<Element>(); System.out.println( list.size()); for (int i = 0; i < list.size(); i++) { Element element =(Element) list.get(i); System.out.println(element.getAttributeValue("Name"));//第二层节点 children = element.getChildren("Value"); for (int j = 0; j < children.size(); j++) { //System.out.println(children.size());子节点下面有多少个位Value的KV Element elementC =(Element) children.get(j);//第三层节点 //System.out.println(elementC.getAttributeValue("Name"));得到第三层节点属性为Name的值 //定位到<Configuration> -> <Key> -> <Value Name="PhotoIDWidth"> if(elementC.getAttributeValue("Name").equals("PhotoIDWidth")){ //获取<Configuration> -> <Key> -> <Value Name="PhotoIDWidth"> 属性值 System.out.print("<--------->"+elementC.getAttributeValue("Name")); //获取<Configuration> -> <Key> -> <Value Name="PhotoIDWidth"> 标签里内容 System.out.print(","+elementC.getText()); } } children.clear(); //定位到<Configuration> -> <Key> -> <Key> children = element.getChildren("Key"); for (int k = 0; k < children.size(); k++) { //第三层节点 Element elementChildren =(Element) children.get(k); //定位到<Configuration> -> <Key> -> <Key Name="Child"> if(elementChildren.getAttributeValue("Name").equals("Child")){ childrens = elementChildren.getChildren("Value"); for (int j = 0; j < childrens.size(); j++) {//第四层节点 Element elementChildrens =(Element) childrens.get(j);//注意这里是childrens <Value Name="CrownPercent">0.10</Value> 这里是第四层 //定位到<Configuration> -> <Key> -> <Key Name="Adult"> -> <Value Name="HeadPercent"> if(elementChildrens.getAttributeValue("Name").equals("HeadPercent")){ System.out.println("<--------->"+elementChildrens.getText()); } } } } } } }
第五步:查看结果:

个人心得:
今天也是刚用之前的都忘完了, 主要是你需要把xml读入doc中,然后去访问根结点,然后访问子节点然后这个时候子节点,你就需要存在一个list中,然后拿到根节点的子节点时,再去访问下个子节点。
浙公网安备 33010602011771号