import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
String xml = "<itemInfoQueryRequestDown>"
+ "<checkword>校验字段</checkword>"
+ "<serialNumber>流水号</serialNumber>"
+ "<warehouseCompanyCode>第三方仓储公司代码</warehouseCompanyCode>"
+ "<companyCode>公司代码</companyCode>"
+ "<pageIndex>指定页</pageIndex>"
+ "<itemCodeList>"
+ "<itemCode>商品编号</itemCode>"
+ "<itemCode>商品编号</itemCode>"
+ "<itemCode>商品编号</itemCode>"
+ "</itemCodeList>"
+ "</itemInfoQueryRequestDown>";
Document doc = null;
List<String> list = new ArrayList<String>();
try {
doc = DocumentHelper.parseText(xml);
Element rootElt = doc.getRootElement(); // 获取根节点
String checkword = rootElt.elementTextTrim("checkword");
String serialNumber = rootElt.elementTextTrim("serialNumber");
String warehouseCompanyCode = rootElt.elementTextTrim("warehouseCompanyCode");
String companyCode = rootElt.elementTextTrim("companyCode");
String pageIndex = rootElt.elementTextTrim("pageIndex");
Iterator<Element>iters = rootElt.elementIterator("itemCodeList");
Element info = iters.next();
for (Iterator<Element> biaoInfo = info.elementIterator(); biaoInfo
.hasNext();) {
// 得到itemCode中文本值
list.add(biaoInfo.next().getText());
}
String s = "";
if (list.size() != 0) {
for (int i = 0; i < list.size(); i++) {
String str = list.get(i);
if (i == list.size() - 1) {
s += str ;
}else{
s += str + ",";
}
}
}
System.out.println(s);
} catch (DocumentException e) {
e.printStackTrace();
}
本文介绍了一种使用Java解析XML字符串并提取特定元素文本的方法,包括校验字段、流水号等关键信息,同时展示了如何遍历子元素列表并收集所有商品编号。
4774

被折叠的 条评论
为什么被折叠?



