You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@cassandra.apache.org by Santosh Shet <sa...@vista-one-solutions.com> on 2013/12/08 16:10:14 UTC
Parse xml and store data in Map using xom parser
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
RE: Parse xml and store data in Map using xom parser
Posted by Santosh Shet <sa...@vista-one-solutions.com>.
Hi Dave,
Thanks for your reply. I don't have any control over the XML file. I would try to put in HashMap as you suggested.
Regards,
Santosh
From: Dave Brosius [mailto:dbrosius@mebigfatguy.com]
Sent: Sunday, December 08, 2013 9:39 PM
To: user@cassandra.apache.org
Subject: Re: Parse xml and store data in Map using xom parser
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
Re: Parse xml and store data in Map using xom parser
Posted by Dave Brosius <db...@mebigfatguy.com>.
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
>