组装和解析xml字符串

  1. 组装xml

<?xmlversion="1.0" encoding="utf-8"?>

<units>

    <unit type='ecm_tech_doc’ system='PROGRAM'>

     <!--相关字段信息 -->

        <attribute>c_project_code;c_record_code;c_attach_count;c_receive_date;c_is_checked</attribute>

     <!--查询条件 -->

        <condition>where c_record_codelike '%XXX%' and c_volume_labellike ‘%XXX%’ and c_revisionlike ‘%XXX%’</condition>

     <!—返回记录数量-->

        <returnNumber>5</returnNumber>

    </unit>

</units>

 

其中ecm_tech_doc是工程文件类型  c_record_code为文件编码,c_volume_label为卷标,c_revision为版本


public String buildXml(String cRecordCode,String cVolumeLabel,String cRevision ){

if(cRecordCode==null){
cRecordCode = "";
};
if(cVolumeLabel==null){
cVolumeLabel = "";
};
if(cRevision==null){
cRevision = "";
};
StringBuilder bu = new StringBuilder();
bu.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
bu.append("<units>");
bu.append("<unit type='ecm_tech_doc' system='PROGRAM'>");
bu.append("<attribute>c_project_code;c_record_code;c_attach_count;c_receive_date;c_is_checked;c_revision;c_volume_label;c_doc_status</attribute>");
bu.append("<condition>where c_record_code like");
bu.append("'%");
bu.append(cRecordCode);
bu.append("%'");
bu.append(" and c_volume_label like");
bu.append("'%");
bu.append(cVolumeLabel);
bu.append("%'");
bu.append("and c_revision like");
bu.append("'%");
bu.append(cRevision);
bu.append("%'");
bu.append("</condition>");
bu.append("<returnNumber>25</returnNumber>");
bu.append("</unit>");
bu.append("</units>");
String param = bu.toString();
System.out.println(param);
return param;

}

2.解析xml

返回xml字符串

<?xml version="1.0" encoding="utf-8"?><processResponse><unit type="ecm_tech_doc"><c_revision>B</c_revision><c_volume_label>1/1</c_volume_label><c_record_code>AA417PTR543DNHX45DD</c_record_code><c_is_checked>true</c_is_checked><c_project_code>AA</c_project_code><c_receive_date>2010-08-13 00:00:00</c_receive_date><objectId>09d69409801c2352</objectId><c_attach_count>0</c_attach_count><c_doc_status>PRE</c_doc_status></unit><unit type="ecm_tech_doc"><c_revision>A</c_revision><c_volume_label>1/1</c_volume_label><c_record_code>AA8N0815607CS3143SD</c_record_code><c_is_checked>true</c_is_checked><c_project_code>AA</c_project_code><c_receive_date>2010-08-23 00:00:00</c_receive_date><objectId>09d69409801c2354</objectId><c_attach_count>0</c_attach_count><c_doc_status>CFC</c_doc_status></unit><unit type="ecm_tech_doc"><c_revision>A</c_revision><c_volume_label>1/1</c_volume_label><c_record_code>AA8N0815629CS3143SD</c_record_code><c_is_checked>true</c_is_checked><c_project_code>AA</c_project_code><c_receive_date>2010-08-23 00:00:00</c_receive_date><objectId>09d69409801c2366</objectId><c_attach_count>0</c_attach_count><c_doc_status>CFC</c_doc_status></unit><unit type="ecm_tech_doc"><c_revision>A</c_revision><c_volume_label>1/1</c_volume_label><c_record_code>AA8N0815643CS3143SD</c_record_code><c_is_checked>true</c_is_checked><c_project_code>AA</c_project_code><c_receive_date>2010-08-23 00:00:00</c_receive_date><objectId>09d69409801c236a</objectId><c_attach_count>0</c_attach_count><c_doc_status>CFC</c_doc_status></unit><unit type="ecm_tech_doc"><c_revision>A</c_revision><c_volume_label>1/1</c_volume_label><c_record_code>AA8N0815807CS3143SD</c_record_code><c_is_checked>true</c_is_checked><c_project_code>AA</c_project_code><c_receive_date>2010-08-23 00:00:00</c_receive_date><objectId>09d69409801c2371</objectId><c_attach_count>0</c_attach_count><c_doc_status>CFC</c_doc_status></unit><unit type="ecm_tech_doc"><c_revision>A</c_revision><c_volume_label>1/1</c_volume_label><c_record_code>AA8N0815814CS3143SD</c_record_code><c_is_checked>true</c_is_checked><c_project_code>AA</c_project_code><c_receive_date>2010-08-23 00:00:00</c_receive_date><objectId>09d69409801c2376</objectId><c_attach_count>0</c_attach_count><c_doc_status>CFC</c_doc_status></unit><unit type="ecm_tech_doc"><c_revision>A</c_revision><c_volume_label>1/1</c_volume_label><c_record_code>AA3W0115020A0E743SD</c_record_code><c_is_checked>true</c_is_checked><c_project_code>AA</c_project_code><c_receive_date>2010-08-13 00:00:00</c_receive_date><objectId>09d69409801c237b</objectId><c_attach_count>0</c_attach_count><c_doc_status>CFC</c_doc_status></unit><unit type="ecm_tech_doc"><c_revision>A3</c_revision><c_volume_label>1/1</c_volume_label><c_record_code>AA1L0116026A0E743SD</c_record_code><c_is_checked>false</c_is_checked><c_project_code>AA</c_project_code><c_receive_date>2010-06-07 00:00:00</c_receive_date><objectId>09d69409801c23d8</objectId><c_attach_count>0</c_attach_count><c_doc_status>VFT</c_doc_status></unit><unit type="ecm_tech_doc"><c_revision>A1</c_revision><c_volume_label>1/1</c_volume_label><c_record_code>AA9GA083094A0E543SD</c_record_code><c_is_checked>false</c_is_checked><c_project_code>AA</c_project_code><c_receive_date>2012-03-05 00:00:00</c_receive_date><objectId>09d69409801c23d9</objectId><c_attach_count>0</c_attach_count><c_doc_status>VFP</c_doc_status></unit><unit type="ecm_tech_doc"><c_revision>A</c_revision><c_volume_label>1/1</c_volume_label><c_record_code>AA3W0115023A0E743SD</c_record_code><c_is_checked>true</c_is_checked><c_project_code>AA</c_project_code><c_receive_date>2010-08-13 00:00:00</c_receive_date><objectId>09d69409801c23dc</objectId><c_attach_count>0</c_attach_count><c_doc_status>CFC</c_doc_status></unit><unit type="ecm_tech_doc"><c_revision>A</c_revision><c_volume_label>1/1</c_volume_label><c_record_code>AA2R1216030CS3143SD</c_record_code><c_is_checked>true</c_is_checked><c_project_code>AA</c_project_code><c_receive_date>2010-06-22 00:00:00</c_receive_date><objectId>09d69409801c23dd</objectId><c_attach_count>0</c_attach_count><c_doc_status>CFC</c_doc_status></unit><unit type="ecm_tech_doc"><c_revision>A1</c_revision><c_volume_label>1/1</c_volume_label><c_record_code>AA9GA083100A0E543SD</c_record_code><c_is_checked>false</c_is_checked><c_project_code>AA</c_project_code><c_receive_date>2012-03-05 00:00:00</c_receive_date><objectId>09d69409801c23df</objectId><c_attach_count>0</c_attach_count><c_doc_status>VFP</c_doc_status></unit><unit type="ecm_tech_doc"><c_revision>B</c_revision><c_volume_label>1/1</c_volume_label><c_record_code>AA1R5616000CS3143SD</c_record_code><c_is_checked>true</c_is_checked><c_project_code>AA</c_project_code><c_receive_date>2010-06-22 00:00:00</c_receive_date><objectId>09d69409801c23e4</objectId><c_attach_count>0</c_attach_count><c_doc_status>CFC</c_doc_status></unit><unit type="ecm_tech_doc"><c_revision>A1</c_revision><c_volume_label>1/1</c_volume_label><c_record_code>AA9GA083109A0E543SD</c_record_code><c_is_checked>false</c_is_checked><c_project_code>AA</c_project_code><c_receive_date>2012-03-05 00:00:00</c_receive_date><objectId>09d69409801c23e3</objectId><c_attach_count>0</c_attach_count><c_doc_status>VFP</c_doc_status></unit><unit type="ecm_tech_doc"><c_revision>B</c_revision><c_volume_label>1/1</c_volume_label><c_record_code>AA1W0116999CS3143SD</c_record_code><c_is_checked>true</c_is_checked><c_project_code>AA</c_project_code><c_receive_date>2010-06-22 00:00:00</c_receive_date><objectId>09d69409801c23e8</objectId><c_attach_count>0</c_attach_count><c_doc_status>CFC</c_doc_status></unit><unit type="ecm_tech_doc"><c_revision>B</c_revision><c_volume_label>1/1</c_volume_label><c_record_code>AA9N7216999CS3143SD</c_record_code><c_is_checked>true</c_is_checked><c_project_code>AA</c_project_code><c_receive_date>2010-06-22 00:00:00</c_receive_date><objectId>09d69409801c23ec</objectId><c_attach_count>0</c_attach_count><c_doc_status>CFC</c_doc_status></unit><unit type="ecm_tech_doc"><c_revision>A3</c_revision><c_volume_label>1/1</c_volume_label><c_record_code>AA2K0815043A0E743SD</c_record_code><c_is_checked>false</c_is_checked><c_project_code>AA</c_project_code><c_receive_date>2012-02-22 00:00:00</c_receive_date><objectId>09d69409801c23ed</objectId><c_attach_count>0</c_attach_count><c_doc_status>VFC</c_doc_status></unit><unit type="ecm_tech_doc"><c_revision>B</c_revision><c_volume_label>1/1</c_volume_label><c_record_code>AA9N7216000CS3143SD</c_record_code><c_is_checked>true</c_is_checked><c_project_code>AA</c_project_code><c_receive_date>2010-06-22 00:00:00</c_receive_date><objectId>09d69409801c23f1</objectId><c_attach_count>0</c_attach_count><c_doc_status>CFC</c_doc_status></unit><unit type="ecm_tech_doc"><c_revision>A1</c_revision><c_volume_label>1/1</c_volume_label><c_record_code>AA9N7216784ZN2343SD</c_record_code><c_is_checked>false</c_is_checked><c_project_code>AA</c_project_code><c_receive_date>2012-03-05 00:00:00</c_receive_date><objectId>09d69409801c23f2</objectId><c_attach_count>0</c_attach_count><c_doc_status>VFP</c_doc_status></unit><unit type="ecm_tech_doc"><c_revision>A</c_revision><c_volume_label>1/1</c_volume_label><c_record_code>AA332804016S45F04GN</c_record_code><c_is_checked>false</c_is_checked><c_project_code>AA</c_project_code><c_receive_date>2012-02-16 00:00:00</c_receive_date><objectId>09d69409801c23f7</objectId><c_attach_count>0</c_attach_count><c_doc_status>CAE</c_doc_status></unit><unit type="ecm_tech_doc"><c_revision>A</c_revision><c_volume_label>1/1</c_volume_label><c_record_code>AA8N0816262A0E743SD</c_record_code><c_is_checked>true</c_is_checked><c_project_code>AA</c_project_code><c_receive_date>2010-06-30 00:00:00</c_receive_date><objectId>09d69409801c23f8</objectId><c_attach_count>0</c_attach_count><c_doc_status>CFC</c_doc_status></unit><unit type="ecm_tech_doc"><c_revision>A</c_revision><c_volume_label>1/1</c_volume_label><c_record_code>AA8N0816268A0E743SD</c_record_code><c_is_checked>true</c_is_checked><c_project_code>AA</c_project_code><c_receive_date>2010-06-30 00:00:00</c_receive_date><objectId>09d69409801c23fd</objectId><c_attach_count>0</c_attach_count><c_doc_status>CFC</c_doc_status></unit><unit type="ecm_tech_doc"><c_revision>C</c_revision><c_volume_label>1/1</c_volume_label><c_record_code>PY899SBE001ENFF45GN</c_record_code><c_is_checked>true</c_is_checked><c_project_code>PY</c_project_code><c_receive_date>2011-12-30 00:00:00</c_receive_date><objectId>09d69409801c23fe</objectId><c_attach_count>0</c_attach_count><c_doc_status>CFC</c_doc_status></unit><unit type="ecm_tech_doc"><c_revision>A1</c_revision><c_volume_label>1/1</c_volume_label><c_record_code>AA9GA083113A0E543SD</c_record_code><c_is_checked>false</c_is_checked><c_project_code>AA</c_project_code><c_receive_date>2012-03-05 00:00:00</c_receive_date><objectId>09d69409801c23ff</objectId><c_attach_count>0</c_attach_count><c_doc_status>VFP</c_doc_status></unit><unit type="ecm_tech_doc"><c_revision>A</c_revision><c_volume_label>1/1</c_volume_label><c_record_code>AA8N0816270A0E743SD</c_record_code><c_is_checked>true</c_is_checked><c_project_code>AA</c_project_code><c_receive_date>2010-06-30 00:00:00</c_receive_date><objectId>09d69409801c2401</objectId><c_attach_count>0</c_attach_count><c_doc_status>CFC</c_doc_status></unit></processResponse>

public DataObject[] parseXml(String result) throws DocumentException {

                Document doc = null;
doc = DocumentHelper.parseText(xml);

Document doc = readXmlFile(result);
Element rootElement = doc.getRootElement();
Iterator iterator = rootElement.elementIterator("unit");
ArrayList<DataObject> list = new ArrayList<DataObject>();
while (iterator.hasNext()) {
Element obj = (Element) iterator.next();
Iterator iterator2 = obj.elementIterator();
DataObject object = DataObjectUtil
.createDataObject("com.primeton.yonyou.global.RelevantFile.ImssuRelevantFile");
while (iterator2.hasNext()) {
Element obj1 = (Element) iterator2.next();
String name = obj1.getName();
String value = obj1.getTextTrim();
// 关联文件编码
if ("c_record_code".equals(name)) {
object.set("cRecordCode", value);
}
;
// 卷标
if ("c_volume_label".equals(name)) {
object.set("cVolumeLabel", value);
}
// 版本
if ("c_revision".equals(name)) {
object.set("cRevision", value);
}
;
if ("c_project_code".equals(name)) {
object.set("pjNo", value);
}
;
// 状态
if ("c_doc_status".equals(name)) {
object.set("cDocStatus", value);
}
;
// 主题
if ("subject".equals(name)) {
object.set("objectName", value);
}
;
/*if ("c_attach_count".equals(name)) {
Document doc = null;
doc = DocumentHelper.parseText(xml);
object.set("c_attach_count", value);
}*/
;


// doc.g

}
list.add(object);
}
DataObject[] onj = new DataObject[list.size()];
for (int i = 0; i < onj.length; i++) {
onj[i] = list.get(i);
}

return onj;
}
/**
* 读取xml文件并转化为document对象
* @param file
* @return
* @throws DocumentException
*/
public static Document readXmlFile(String xml) throws DocumentException{
Document doc = null;
doc = DocumentHelper.parseText(xml);
return doc;
}


猜你喜欢

转载自blog.csdn.net/qq_29988051/article/details/80479196