Not really a cassandra question, but it would seem your xml file isn't
particularly well designed. It would seem you need to qualify your
<test> entries with indices when put in the map, such as
put("test.1.C", "0");
put("test.2.C", "5000000000");
before figuring out the cassandra angle, i'd rethink how that xml is
designed if that's within your control.
On 12/08/2013 10:10 AM, Santosh Shet wrote:
Hi,
I am trying to parse below shown XML file using *xom parser in java*
and put each key,value pairs into Map. Later I am trying to insert
this Map into Cassandra using Mutator object. My XML file looks like
as below:
<sample>
<Max>0.25000</Max>
<test>
<A>Percentage</A>
<B>1</B>
<C>0</C>
<D>2000000000</D>
<E>0.25</E>
</test>
<test>
<A>Percentage</A>
<B>1</B>
<C>5000000000</C>
<D>7500000000</D>
<E>0.15</E>
</test>
</sample>
Currently I have HashMap<String,String> xmlData to hold elements of XML.
I am traversing each child elements using getChildElements() and then
retrieving element name ,element value and storing them inside
HashMap. But I am facing problem while doing for the second subchild
element (*<test>marked in green*) because it overwrites values of
child elements of which I had traversed in my last iteration (*<test>
marked in blue*) .
Could somebody provide thoughts on how to store data in Cassandra in
above situation. Is there any better way to it or do I need to append
counter+xpath. For example, if there are 2 child elements, append
<test1>+1+<A> for element <A> inside first <test> and append
<test>+2+<A> for subchild of another <test> element.
Thanks in advance.
Best,
*Santosh Shet*
Software Engineer | VistaOne Solutions
Direct India : *+91 80 30273829* | Mobile India : *+91 8105720582*
Skype : santushet