Mercurial > dive4elements > framework
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 {