/**
* XML读取
*
* @param inMap
* @return string数字:0-表名;1-表字段串
*/
public static String[] parserXml(Map<String, String> inMap, String table) {
String[] returnArray = new String[2];
StringBuilder parser = new StringBuilder();
String parentName = "";
String fileName = inMap.get("IMPORT_MAP_FILE");
//fileName就是xml的路径
File inputXml = new File(fileName);
SAXReader saxReader = new SAXReader();
try {
Document document = saxReader.read(inputXml);
Element firstElement = document.getRootElement();
for (Iterator i = firstElement.elementIterator(); i.hasNext();) {
Element secondElement = (Element) i.next();
if (StringUtils.isEmpty(table)) {
for (Iterator j = secondElement.elementIterator(); j.hasNext();) {
Element node = (Element) j.next();
if (StringUtils.isEmpty(parentName)) {// 获取入库表名
parentName = node.getParent().getName();
}
parser.append(node.getName() + ImportCode.AND_CODE + node.getText() + ImportCode.AND_CODE);
if (node.attribute(ImportCode.TYPE_CODE) != null) {
parser.append(node.attribute(ImportCode.TYPE_CODE).getText());
}
parser.append(ImportCode.SLIPT_CODE);
}
}
else if (table.equals(secondElement.getName())) {// 读取指定表的字段值
for (Iterator j = secondElement.elementIterator(); j.hasNext();) {
Element node = (Element) j.next();
if (StringUtils.isEmpty(parentName)) {// 获取入库表名
parentName = node.getParent().getName();
}
parser.append(node.getName() + ImportCode.AND_CODE + node.getText() + ImportCode.AND_CODE);
if (node.attribute(ImportCode.TYPE_CODE) != null) {
parser.append(node.attribute(ImportCode.TYPE_CODE).getText());
}
parser.append(ImportCode.SLIPT_CODE);
}
break;
}
}
returnArray[0] = parentName;
returnArray[1] = parser.toString();
}
catch (DocumentException e) {
e.printStackTrace();
throw new EsfException("", "解析入库映射文件异常:" + e);
}
return returnArray;
}
<?xml version="1.0" encoding="gb2312"?>
<ALways>
<TF_A_UDPUNICARD_TMP>
<FETCHIMORPT_FILE_CODE type="BigDecimal"></FETCHIMORPT_FILE_CODE>
<ACCOUNTS_CODE type="BigDecimal"></ACCOUNTS_CODE>
<ACCOUNTS_DATE type="String"></ACCOUNTS_DATE>
<ACCOUNTS_VER type="String"></ACCOUNTS_VER>
<SERVICE_ORDER type="String">5</SERVICE_ORDER>
<UDP_ORDER type="String"></UDP_ORDER>
<PAY_ORG_CODE type="String">6</PAY_ORG_CODE>
<PAY_CHANNEL_CODE type="String">7</PAY_CHANNEL_CODE>
<PAY_ORG_ORDER type="String">1</PAY_ORG_ORDER>
<PAY_CHANNEL_ORDER type="String">8</PAY_CHANNEL_ORDER>
<PAY_AMOUNT type="BigDecimal">2</PAY_AMOUNT>
<PAY_DATE type="Timestamp">9</PAY_DATE>
<NOTIFY_DATE type="Timestamp">10</NOTIFY_DATE>
<FILE_RESOURCE type="String"></FILE_RESOURCE>
<ACCOUNT_TYPE type="String"></ACCOUNT_TYPE>
</TF_A_UDPUNICARD_TMP>
</ALways>