Java利用JDom解析和传递XML格式数据

Java利用JDom解析和传递XML格式数据

Java利用JDom来解析处理XML数据格式:需要的包jdom-1.1.2.jar

1 将数据转换成XML格式的数据进行传递

Element rootList, firstList, secondItem, thirdItem;//根元素标签名rootList = new Element(“root”);//根元素标签内的属性名与值rootList.setAttribute(“project”, pname);//生成Doc文档Document Doc = new Document(rootList);//获取文档中的根标签rootList = Doc.getRootElement();for (int i = 0; i < judges.size(); i++){//生成新的元素firstList = new Element(“flayout”);firstList.setAttribute(“percent”, “percent”);//加入根级元素中rootList.addContent(firstList);}XMLOutputter XMLOut = new XMLOutputter();//将doc文档转换为字符串型的XML格式String xmlinfo = XMLOut.outputString(Doc);//将开头的去掉xmlinfo = xmlinfo.replace(“<?xml version=\”1.0\” encoding=\”UTF-8\”?>”,””);//返回已经封装好的XML数据return xmlinfo;

2 将字符串中的XML解析出进行处理

//创建一个新的字符串StringReader read = new StringReader(stadXML);// 创建新的输入源SAX 解析器将使用 InputSource 对象来确定如何读取 XML 输入InputSource source = new InputSource(read);// 创建一个新的SAXBuilderSAXBuilder sb = new SAXBuilder();String projectName;List<Judgestandard> standIndex = new ArrayList<Judgestandard>();try {// 通过输入源构造一个DocumentDocument doc = sb.build(source);// 取的根元素Element root = doc.getRootElement();projectName = root.getAttributeValue(“project”);// 得到根元素所有子元素的集合Element et = null;List nodes = root.getChildren();// 第一级指标for (int i = 0; i < nodes.size(); i++) {et = (Element) nodes.get(i);// 循环依次得到子元素Judgestandard judge = new Judgestandard();//获取该元素中属性的值String fid = et.getAttributeValue(“mainid”);//获取元素的孩子数目List fsize = et.getChildren();// 第二级指标for (int j = 0; j < fsize.size(); j++){et = (Element) fsize.get(j);// 循环依次得到子元素et.getAttributeValue(“stdid”)}

Java处理XML文档

原始XML:

<?xml version=”1.0″ encoding=”UTF-8″?><HD><disk><capacity>8G</capacity><files>1580</files></disk><disk><capacity>10G</capacity><files>3000</files></disk></HD>

Java处理代码:

import java.util.List;import org.jdom.Document;import org.jdom.Element;import org.jdom.input.SAXBuilder;/** * <?xml version=”1.0″ encoding=”UTF-8″?> *<HD> * <disk> *<capacity>8G</capacity> *<files>1580</files> * </disk> * <disk> *<capacity>10G</capacity> *<files>3000</files> * </disk> *</HD> * @author Administrator * *///利用JDom来解析XML文件public class JDomParseXMLFile {public static void main(String[] args) throws Exception{SAXBuilder sb=new SAXBuilder();//下面两种构建document的方式,香港服务器租用,香港服务器,将xml和该解析类都放在默认包下Document doc=sb.build(JDomParseXMLFile.class.getClassLoader().getResourceAsStream(“test.xml”));//Document doc=sb.build(“src/test.xml”);//构造文档对象Document doc=sb.build(“src/test.xml”);//构造文档对象Element root=doc.getRootElement();//获取根元素,美国服务器,即文档中的<HD>List list=root.getChildren(“disk”);//取名字为disk的所有元素for(int i=0;i<list.size();i++){Element element=(Element)list.get(i);//依此遍历所有的disk节点String name=element.getAttributeValue(“name”);String capacity=element.getChildText(“capacity”);//取disk子元素capacity的内容String files=element.getChildText(“files”);System.out.println(“name:”+name);System.out.println(“capacity”+capacity);System.out.println(“files”+files);}}}

本文出自 “在云端的追梦” 博客,请务必保留此出处

没有什么可留恋,只有抑制不住的梦想,没有什么可凭仗,

Java利用JDom解析和传递XML格式数据

相关文章:

你感兴趣的文章:

标签云: