diff artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java @ 384:823752e3d392

Fixed building XML documents from JSON strings. artifacts/trunk@4321 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Fri, 27 Apr 2012 10:56:38 +0000
parents bed51de8ae58
children 111d4e28c45e
line wrap: on
line diff
--- a/artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java	Wed Apr 25 07:47:56 2012 +0000
+++ b/artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java	Fri Apr 27 10:56:38 2012 +0000
@@ -481,6 +481,14 @@
                 element.setAttribute(entry.getKey(), entry.getValue());
             }
         }
+
+        void finish(Element element) {
+            setAttributes(element);
+            for (Node child: children) {
+                element.appendChild(child);
+            }
+        }
+
         void add(Node node) {
             children.add(node);
         }
@@ -500,13 +508,13 @@
                 Element element = document.createElement("map");
                 BuildResult subResult = recursiveBuild(
                     (Map<String, Object>)entry, document);
-                subResult.setAttributes(element);
+                subResult.finish(element);
                 result.add(element);
             }
             else if (entry instanceof List) {
                 Element element = document.createElement("list");
                 BuildResult subResult = recursiveBuild((List)entry, document);
-                subResult.setAttributes(element);
+                subResult.finish(element);
                 result.add(element);
             }
             else {
@@ -532,13 +540,13 @@
                 Element element = document.createElement(entry.getKey());
                 BuildResult subResult = recursiveBuild(
                     (Map<String, Object>)value, document);
-                subResult.setAttributes(element);
+                subResult.finish(element);
                 result.add(element);
             }
             else if (value instanceof List) {
                 Element element = document.createElement(entry.getKey());
                 BuildResult subResult = recursiveBuild((List)value, document);
-                subResult.setAttributes(element);
+                subResult.finish(element);
                 result.add(element);
             }
             else {

http://dive4elements.wald.intevation.org