dom4j解析xml
代码
<?xml version="1.0" encoding="gb2312"?>
<products>
<product name="产品1">
<pcode code="code1">100001</pcode>
</product>
<product>
<name>产品2</name>
<pcode>100002</pcode>
</product>
<product>
<name>产品3</name>
<pcode>100003</pcode>
</product>
<product>
<name>产品4</name>
<pcode>100001</pcode>
</product>
</products>import java.io.File; import java.net.MalformedURLException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.dom4j.Attribute; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; @SuppressWarnings("unchecked") public class Test { public List<Product> getProductFromXml(String filename) throws MalformedURLException { SAXReader saxReader = new SAXReader(); List<Product> list = new ArrayList<Product>(); //将解析的结果存放到list中 try { Document document = saxReader.read(new File(filename)); Element root = document.getRootElement(); // 遍历根结点(products)的所有孩子节点(肯定是product节点) for (Iterator<Element> iter = root.elementIterator(); iter.hasNext();) { Element element = (Element) iter.next(); // 遍历product结点的所有孩子节点(即name,pcode),并进行处理 Product product = new Product(); Attribute nameAttr = element.attribute("name"); if(null != nameAttr && !"".equals(nameAttr)){ product.setName(nameAttr.getValue()); } for (Iterator<Element> iterInner = element.elementIterator(); iterInner .hasNext();) { Element elementInner = (Element) iterInner.next(); Attribute codeAttr = elementInner.attribute("code"); if(null != codeAttr && !"".equals(codeAttr)){ product.setCode(codeAttr.getValue()); } if("name".equalsIgnoreCase(elementInner.getName())){ product.setName(elementInner.getText()); } if("pcode".equalsIgnoreCase(elementInner.getName())){ product.setPcode(elementInner.getText()); } } list.add(product); } }catch (DocumentException e) { e.printStackTrace(); } return list; } public static void main(String[] args) { Test test = new Test(); try { List<Product> list = test.getProductFromXml("F://product2.xml"); for (Iterator iter = list.iterator(); iter.hasNext();) { Product product = (Product) iter.next(); System.out.println("Product.name=" + product.getName()+",Product.pcode=" + product.getPcode() + ",Product.code=" + product.getCode()); } } catch (MalformedURLException e) { e.printStackTrace(); } } } class Product{ private String name; private String pcode; private String code; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPcode() { return pcode; } public void setPcode(String pcode) { this.pcode = pcode; } public String getCode() { return code; } public void setCode(String code) { this.code = code; } }


浙公网安备 33010602011771号