diff --git a/org.hl7.fhir.utilities/src/main/java/org/hl7/fhir/utilities/xhtml/XhtmlNode.java b/org.hl7.fhir.utilities/src/main/java/org/hl7/fhir/utilities/xhtml/XhtmlNode.java index 0b01556d3..ff5b3f10e 100644 --- a/org.hl7.fhir.utilities/src/main/java/org/hl7/fhir/utilities/xhtml/XhtmlNode.java +++ b/org.hl7.fhir.utilities/src/main/java/org/hl7/fhir/utilities/xhtml/XhtmlNode.java @@ -397,6 +397,10 @@ public class XhtmlNode implements IBaseXhtml { XhtmlDocument fragment = new XhtmlParser().parse(val, "div"); this.attributes = fragment.getAttributes(); this.childNodes = fragment.getChildNodes(); + // Strip the declaration if one was present + if (childNodes.size() > 0 && childNodes.get(0) != null && childNodes.get(0).getNodeType() == NodeType.Instruction) { + childNodes.remove(0); + } this.content = fragment.getContent(); this.name = fragment.getName(); this.nodeType= fragment.getNodeType(); diff --git a/org.hl7.fhir.utilities/src/test/java/org/hl7/fhir/utilities/tests/XhtmlNodeTest.java b/org.hl7.fhir.utilities/src/test/java/org/hl7/fhir/utilities/tests/XhtmlNodeTest.java index 9a405349a..bee8fe594 100644 --- a/org.hl7.fhir.utilities/src/test/java/org/hl7/fhir/utilities/tests/XhtmlNodeTest.java +++ b/org.hl7.fhir.utilities/src/test/java/org/hl7/fhir/utilities/tests/XhtmlNodeTest.java @@ -46,5 +46,14 @@ public class XhtmlNodeTest { } + @Test + public void testProcessingInstructionNotPreserved() { + XhtmlNode dt = new XhtmlNode(); + dt.setValueAsString("
help i'm a bug
"); + assertEquals("
help i'm a bug
", dt.getValueAsString()); + assertEquals("
help i'm a bug
", new XhtmlNode().setValue(dt.getValue()).getValueAsString()); + } + + } \ No newline at end of file