公司这边是用dom4j,主要是用来解析xml的,一般有这么几个操作:
1.创建xml文档:
org.dom4j.Document doc = DocumentHelper.createDocument();
2.创建根元素并添加:
Element root = DocumentHelper.createElement("FEATURELIST");
doc.add(root);
3.创建其他子元素并添加属性:
Element featureElement = DocumentHelper.createElement("FEATURE");
添加子元素到根节点:
root.add(featureElement);
4.创建子元素的属性并添加:
org.dom4j.Attribute attr = attr = DocumentHelper.createAttribute(featureElement, "fieldflag", offerFeature.getFieldFlag());
featureElement.add(attr);
5.把内容格式化:(这个是直接关系到整个xml的格式,如编码、元素间的内容)
/** 格式化输出 */
OutputFormat format = OutputFormat.createPrettyPrint();
/** 指定XML编码 */
format.setEncoding("GBK");
StringWriter sw = new StringWriter();
XMLWriter xmlWriter = new XMLWriter(sw, format);
xmlWriter.write(doc);
xmlWriter.flush();
xmlWriter.close();
return sw.toString();
当然要捕获异常处理。
这也是存储在offer表中最大字段member_define_properties的操作情况。
几个问题:
1.效率慢:全部加载完成后再进行解析
2.耗内存
3.如果xml是规范的形式,建议用边解析边加载的sax,当然目前已经有很多其他的解析工具。