Explorar o código

台州xml转map取值修改

rengb %!s(int64=5) %!d(string=hai) anos
pai
achega
b7b662c3d0

+ 22 - 18
trans/src/main/java/com/lantone/qc/trans/taizhou/util/TzXmlUtil.java

@@ -27,7 +27,7 @@ import java.util.regex.Pattern;
 public class TzXmlUtil {
 
     /**
-     *  getText()获取当前节点的文本内容,getStringValue()获取所有子节点拼接后的文本内容
+     * getText()获取当前节点的文本内容,getStringValue()获取所有子节点拼接后的文本内容
      *
      * @param xml
      * @return
@@ -38,24 +38,28 @@ public class TzXmlUtil {
         try {
             Document doc = DocumentHelper.parseText(XmlUtil.xmlErrorCorrection(xml));
             List<Element> emrTermElements = doc.getRootElement().element("TermList").elements("EMR-TERM");
-            emrTermElements.forEach(emrTermElement -> {
-                if(retMap == null || StringUtil.isEmpty(retMap.get(StringUtil.removeBlank(emrTermElement.attributeValue("ename"))))){
-                    retMap.put(
-                            StringUtil.removeBlank(emrTermElement.attributeValue("ename")),
-                            emrTermElement.getStringValue().trim()
-                    );
+            String ename, setnomark, text;
+            for (Element emrTermElement : emrTermElements) {
+                ename = StringUtil.removeBlank(emrTermElement.attributeValue("ename"));
+                setnomark = emrTermElement.attributeValue("setnomark");
+                text = emrTermElement.getStringValue().trim();
+                if (retMap == null || StringUtil.isEmpty(retMap.get(ename))) {
+                    if (StringUtil.isBlank(text)) {
+                        retMap.put(ename, setnomark);
+                    } else {
+                        retMap.put(ename, text);
+                    }
                 }
-            });
+            }
         } catch (Exception e) {
             e.printStackTrace();
         }
         return XmlUtil.correctMapOfXml(retMap);
     }
 
-
     /**
-     *  getText()获取当前节点的文本内容,getStringValue()获取所有子节点拼接后的文本内容
-     *  需要转义
+     * getText()获取当前节点的文本内容,getStringValue()获取所有子节点拼接后的文本内容
+     * 需要转义
      *
      * @param xml
      * @return
@@ -63,9 +67,9 @@ public class TzXmlUtil {
 
     public static Map<String, String> getXmlToMapForTZWithReplace(String xml) {
         Map<String, Object> res = getReplace(xml);
-        String contentReplace = (String)res.get("content");
+        String contentReplace = (String) res.get("content");
         Map<String, String> sourceMap = TzXmlUtil.getXmlToMapForTZ(contentReplace);
-        Boolean replace = (Boolean)res.get("repFlag"); // 获取是否要替换的标识
+        Boolean replace = (Boolean) res.get("repFlag"); // 获取是否要替换的标识
         if (replace) {
             Map<String, String> map = (Map) res.get("replaceMap");
             for (String key : sourceMap.keySet()) {
@@ -83,7 +87,6 @@ public class TzXmlUtil {
 
 
     /**
-     *
      * @param content
      * @return
      */
@@ -102,7 +105,7 @@ public class TzXmlUtil {
 
         // 现在创建 matcher 对象
         Matcher m = r.matcher(content);
-        while(m.find()) {
+        while (m.find()) {
             String msg = m.group();
             if (!msg.contains("=")) {
                 cutWord.add(msg);
@@ -137,6 +140,7 @@ public class TzXmlUtil {
 
     /**
      * 测试入口
+     *
      * @param args
      */
     public static void main(String[] args) {
@@ -149,12 +153,12 @@ public class TzXmlUtil {
             Statement st = connection.createStatement();
             ResultSet rs = null;
             //执行查询
-            String sql = "select mode_id, origin_text from qc_model_mapping where case_number='" + case_number + "' and mode_id='" + mode_id + "' order by id" ;
+            String sql = "select mode_id, origin_text from qc_model_mapping where case_number='" + case_number + "' and mode_id='" + mode_id + "' order by id";
             rs = st.executeQuery(sql);
             //遍历
-            while(rs.next()) {
+            while (rs.next()) {
                 String context = rs.getString("origin_text");
-//                Map<String, String> sourceMap = CxXmlUtil.firstLevelNodeValue(nodePath, context);
+                //                Map<String, String> sourceMap = CxXmlUtil.firstLevelNodeValue(nodePath, context);
                 Map<String, String> sourceMap = TzXmlUtil.getXmlToMapForTZ(context);
                 for (String key : sourceMap.keySet()) {
                     System.out.println("\"" + key + "=\",");