首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > XML SOAP >

怎么利用JDOM把XML文档全部解析出来

2014-01-17 
如何利用JDOM把XML文档全部解析出来??????? 在学采用JDOM解析XML文档时,如何把XML文档中的内容全部解析出

如何利用JDOM把XML文档全部解析出来

??????? 在学采用JDOM解析XML文档时,如何把XML文档中的内容全部解析出来,这个问题可把我难住了。不过经过多番查看JDOM API后,终于把它给搞定了。呼呼。。经过这么一弄,算是基本掌握JDOM了。

??????? 其中XML文档为:company.xml

???????

<?xml version="1.0" encoding="UTF-8"?><联系人列表 公司="大禹"><联系人>    <!-- 我是注释,看不见我  --><姓名>大牛</姓名><公司>大禹集团</公司><电话>180888888</电话><地址><街道>皇后街</街道><城市>上海</城市><省份>上海</省份></地址></联系人><联系人><姓名>二牛</姓名><公司>大禹集团</公司><电话>188888888</电话><地址><街道>皇后大道</街道><城市>上海</城市><省份>上海</省份></地址></联系人></联系人列表>

??????

?? ?解析它的java代码如下:ParseTest.java

???

import java.io.File;import java.io.IOException;import java.util.List;import org.jdom.Attribute;import org.jdom.Comment;import org.jdom.Document;import org.jdom.Element;import org.jdom.JDOMException;import org.jdom.Text;import org.jdom.input.SAXBuilder;// 练习  解析指定的XML文档,打印到控制台上public class ParseTest {public static void main(String[] args) throws JDOMException, IOException {SAXBuilder builder = new SAXBuilder();Document doc = builder.build(new File("company.xml"));Element root = doc.getRootElement();parse(root);}private static void parse(Element root) {String rootName = root.getName();System.out.print("<" + rootName);// 把当前元素里的属性先打印出来List listAtt = root.getAttributes();for (int i = 0; i < listAtt.size(); i++) {Attribute att = (Attribute) listAtt.get(i);String sname = att.getName();String svalue = att.getValue();System.out.print("  " + sname + "="" + svalue + """);}System.out.print(">");List listContent = root.getContent();for (int i = 0; i < listContent.size(); i++) {Object obj = listContent.get(i);// 利用instanceof关键字来判断获得的内容的具体类型if (obj instanceof Text) {Text t = (Text) obj;System.out.print(t.getText()); // 递归出口} else if (obj instanceof Element) {Element e = (Element) obj;parse(e); // 如果是Element,则递归} else if (obj instanceof Comment) {Comment c = (Comment) obj;System.out.print("<!--" + c.getText() + ">");}}System.out.print("</" + rootName + ">");}}

?

???? 这里instanceof关键字,可是帮了我大忙,没有它的话,都不知道怎么去判断从getContent()方法中得来的对象。。

热点排行