解析html中的内容并已id赋值
//策略模式
@Resource
private ApplicationContext applicationContext;
@Override
public String fillingHTMLStr(String file, Map<String,Object> map) throws Exception {
org.jsoup.nodes.Document doc = Jsoup.connect(file).get();
log.info("解析html:{}",doc);
log.info("map中的内容:{}",map);
if (!CollectionUtils.isEmpty(map) && map.size()>0) {
for (Map.Entry<String,Object> m : map.entrySet()) {
String value = "";
String key = m.getKey();
Object values = m.getValue();
if (!StringUtils.isEmpty(values)) {
value = values.toString();
}
Element keyAttr = doc.getElementById(key);
if (!StringUtils.isEmpty(keyAttr) && !StringUtils.isEmpty(value)) {
Element valueReal = keyAttr.append(value);
}
}
//保理签署
if (!StringUtils.isEmpty(doc.getElementById(SystemEnum.ASSET_MY.getMessage()))){
Element tableNode = doc.getElementById(SystemEnum.ASSET_MY.getMessage());
log.info("保理签署获取tbody:{}", tableNode);
AssetTacticsService service = (AssetTacticsService) applicationContext.getBean(SystemEnum.ASSET_MY.getMessage());
String tdHtml = service.getValue(map);
tableNode.append(tdHtml);
//专项签署
}else if (!StringUtils.isEmpty(doc.getElementById(SystemEnum.ASSET_BALING.getMessage()))){
Element tableNode = doc.getElementById(SystemEnum.ASSET_BALING.getMessage());
log.info("专项签署获取tbody:{}", tableNode);
AssetTacticsService service = (AssetTacticsService) applicationContext.getBean(SystemEnum.ASSET_BALING.getMessage());
String tdHtml = service.getValue(map);
tableNode.append(tdHtml);
}
}
log.info("赋值渲染html:{}",doc.html());
return doc.html();
}
//这里应该是一个实现类中的方法我单拉出来了
public String getValue(Map<String, Object> map) {
Object zcAssetList = map.get("zcAssetList");
List<ZcAsset> assetList = JSON.parseArray(JSON.toJSONString(zcAssetList), ZcAsset.class);
String tdHtml = "";
Integer count = 0;
for (int i = 0; assetList != null && i < assetList.size(); i++) {
count++;
ZcAsset pxc = assetList.get(i);
log.info("资产list:{}",pxc);
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
tdHtml += "<tr class=\"tr1\"> " +
"<td class=\"count\">"+
count +
"</td><td class=\"contractName\">" +
"购销合同" +
"</td><td class=\"orderNumber\">" +
pxc.getOrderNumber() +
"</td><td class=\"vendee_signatory\">" +
map.get("vendee_signatory") +
"</td><td class=\"seller_signatory\">" +
map.get("seller_signatory") +
"</td><td class=\"invoiceNumber\">" +
" " +
"</td><td class=\"invoicePrice\">" +
" " +
"</td><td class=\"assetPrice\">" +
pxc.getAssetPrice() +
"</td><td class=\"promiseDate\">" +
format.format(pxc.getPromiseDate()) +
"</td></tr>";
}
log.info(tdHtml);
return tdHtml;
}
转载请标明原处!