字符串:
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;
}
浙公网安备 33010602011771号