静思
思考中

导航

 

字符串:

String strm="<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+ "<message>"+
"<rows><dataRow><material>C001</material>"+
"<num>9.0</num>"+
"<jobId>2010001</jobId></dataRow>"+
"<dataRow><material>C002</material>"+
"<num>4.0</num>+
"<jobId>2010002</jobId></dataRow></rows></message>";

解析代码:

public String jiexixml(String str)

{         String flag="1";//1解析成功,0解析失败

try
{
   Document doc = (Document) DocumentHelper.parseText(str); // 将字符串转为XML
   Element rootElt = doc.getRootElement(); // 获取根节点
   System.out.println("根节点:" + rootElt.getName()); // 拿到根节点的名称
   Element root = null;
   Iterator iter1 = rootElt.elementIterator("rows");

   while(iter1.hasNext())
   {
       Element element = (Element) iter1.next();

       List list = element.elements("dataRow");//获取包含有"dataRow"的所有数据
       for(int i=0;i<list.size();i++)
      {
          Map map = new HashMap();

          Element els = (Element) list.get(i);
          Iterator iterator = els.elementIterator();

          while (iterator.hasNext()) {
           Element elms = (Element) iterator.next();

           String key=elms.getName(); //获取子节点的名称[设置为键]
           String value=elms.getTextTrim(); //获取子节点的值

           map.put(key, value);
          }///最后获得的第1个Map的键值对为map("material","C001");map("num","9.0");map("jobId","2010001");


      }
  }
}
catch (Exception e)
{flag="0";}
return flag;

}

 

 

 

 

posted on 2013-08-21 11:30  murry  阅读(334)  评论(0)    收藏  举报