I need to parse a xml file (I do parse using JAXB) , but i want to take some part of the Xml file value into a string. After i surfed in net, it can be possible by using CDATA. The follwing link talks about CDATA. But i do have a doubt in the code. Where and how should i specify which of my elements i want to be handled as CDATA.
http://jaxb.java.net/faq/JaxbCDATASample.java
My XML look like the following.
<root>
<Service>CDATASERVICE</Service>
<Child>
<param>
<value>
<struct>
<member>
<name>Servicename</name>
<value>service1</value>
</member>
</struct>
</value>
</param>
<param>
<value>
<struct>
<member>
<name>item1</name>
<value>36</value>
</member>
<member>
<name>Cdata</name>
<value>
<struct>
<member>
<name>services</name>
<value>
<array>
<data>
<value>ABCD</value>
</data>
</array>
</value>
</member>
</struct>
</value>
</member>
<member>
<name>item2</name>
<value>
<int>10</int>
</value>
</member>
</struct>
</value>
</param>
</Child>
</root>
I want to take the following part as a string from the above XML file, how can i get that.
<name>Cdata</name>
<value>
<struct>
<member>
<name>services</name>
<value>
<array>
<data>
<value>ABCD</value>
</data>
</array>
</value>
</member>
</struct>
</value>
You can use an
@XmlAnyElementwith aDomHandlerspecified for this use case.MemberHandler
An
@XmlAnyElementannotation allows you to keep portions of an XML document as XML. By default this is kept as DOM nodes. By implementing aDomHandleryou can leverage an alternate representation such as aString.Struct
Below is an example of how the
DomHandleris referenced from an@XmlAnyElementmapping.input.xml
Below I’ve simplified your XML document down to the interesting part:
Demo
Output