您的位置:首页 > 编程语言 > Java开发

JAVA dom4j 解析XML格式的字符串

2013-08-21 11:30 344 查看
字符串:

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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: