Mercurial > dive4elements > framework
comparison 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 |
comparison
equal
deleted
inserted
replaced
383:b076c9e9fdfd | 384:823752e3d392 |
---|---|
479 void setAttributes(Element element) { | 479 void setAttributes(Element element) { |
480 for (Map.Entry<String, String> entry: attributes.entrySet()) { | 480 for (Map.Entry<String, String> entry: attributes.entrySet()) { |
481 element.setAttribute(entry.getKey(), entry.getValue()); | 481 element.setAttribute(entry.getKey(), entry.getValue()); |
482 } | 482 } |
483 } | 483 } |
484 | |
485 void finish(Element element) { | |
486 setAttributes(element); | |
487 for (Node child: children) { | |
488 element.appendChild(child); | |
489 } | |
490 } | |
491 | |
484 void add(Node node) { | 492 void add(Node node) { |
485 children.add(node); | 493 children.add(node); |
486 } | 494 } |
487 | 495 |
488 void add(String key, Object value) { | 496 void add(String key, Object value) { |
498 for (Object entry: list) { | 506 for (Object entry: list) { |
499 if (entry instanceof Map) { | 507 if (entry instanceof Map) { |
500 Element element = document.createElement("map"); | 508 Element element = document.createElement("map"); |
501 BuildResult subResult = recursiveBuild( | 509 BuildResult subResult = recursiveBuild( |
502 (Map<String, Object>)entry, document); | 510 (Map<String, Object>)entry, document); |
503 subResult.setAttributes(element); | 511 subResult.finish(element); |
504 result.add(element); | 512 result.add(element); |
505 } | 513 } |
506 else if (entry instanceof List) { | 514 else if (entry instanceof List) { |
507 Element element = document.createElement("list"); | 515 Element element = document.createElement("list"); |
508 BuildResult subResult = recursiveBuild((List)entry, document); | 516 BuildResult subResult = recursiveBuild((List)entry, document); |
509 subResult.setAttributes(element); | 517 subResult.finish(element); |
510 result.add(element); | 518 result.add(element); |
511 } | 519 } |
512 else { | 520 else { |
513 Element element = document.createElement("entry"); | 521 Element element = document.createElement("entry"); |
514 element.setAttribute( | 522 element.setAttribute( |
530 Object value = entry.getValue(); | 538 Object value = entry.getValue(); |
531 if (value instanceof Map) { | 539 if (value instanceof Map) { |
532 Element element = document.createElement(entry.getKey()); | 540 Element element = document.createElement(entry.getKey()); |
533 BuildResult subResult = recursiveBuild( | 541 BuildResult subResult = recursiveBuild( |
534 (Map<String, Object>)value, document); | 542 (Map<String, Object>)value, document); |
535 subResult.setAttributes(element); | 543 subResult.finish(element); |
536 result.add(element); | 544 result.add(element); |
537 } | 545 } |
538 else if (value instanceof List) { | 546 else if (value instanceof List) { |
539 Element element = document.createElement(entry.getKey()); | 547 Element element = document.createElement(entry.getKey()); |
540 BuildResult subResult = recursiveBuild((List)value, document); | 548 BuildResult subResult = recursiveBuild((List)value, document); |
541 subResult.setAttributes(element); | 549 subResult.finish(element); |
542 result.add(element); | 550 result.add(element); |
543 } | 551 } |
544 else { | 552 else { |
545 result.add(entry.getKey(), value); | 553 result.add(entry.getKey(), value); |
546 } | 554 } |