0
<?xml version="1.0" encoding="utf-8" ?>
<yesone>
<doc>
    <doc_type>B</doc_type>
    <seq>2015121100007453</seq>
    <att_year>2015</att_year>
    <att_FrmMm>0</att_FrmMm>
    <att_ToMm>0</att_ToMm>
    <att_inqrMm>01,02,03,04,05,06,07,08,09,10,11,12</att_inqrMm>
</doc>
<form form_cd="D101Y">
    <man resid="6611201653606" name="dolch">
        <data dat_cd="D01" busnid="1168140432" trade_nm="gagag(sa)" acc_no="00001532">
            <start_dt>19940708</start_dt>
            <end_dt>99991231</end_dt>
            <com_cd>434</com_cd>
            <sum>1041000</sum>
        </data>
    </man>
</form>

<form form_cd="E102Y">
    <man resid="6611201653606" name="dolch">
        <data dat_cd="E01" busnid="1244661351" trade_nm="gwerqreqxd" acc_no="9601687930560">
            <com_cd>110</com_cd>
            <ann_tot_amt>1200000</ann_tot_amt>
            <tax_year_amt>0</tax_year_amt>
            <ddct_bs_ass_amt>1200000</ddct_bs_ass_amt>
        </data>
    </man>
</form>

<form form_cd="F102Y">
    <man resid="6611201653606" name="dolch">
        <data dat_cd="F01" busnid="6108155691" trade_nm="(asd)gagsgs" acc_no="21010625891874">
            <com_cd>150</com_cd>
            <pension_cd>12</pension_cd>
            <ann_tot_amt>8519160</ann_tot_amt>
            <tax_year_amt>0</tax_year_amt>
            <ddct_bs_ass_amt>8519160</ddct_bs_ass_amt>
        </data>
    </man>
</form>

</yesone>

How can I Convert this XML to Java Map?

Also, please give me an advice about library that I need to do this.

And what I want, as it follows

doc_type=B,seq=2015121100007453,att_year=2015,att_FrmMm=0,att_ToMm=0,att_inqrMm=01,02,03,04,05,06,07,08,09,10,11,12 .......................~

TaeHwan. Park
  • 23
  • 1
  • 4
  • read [ask], this is not a free coding service, first you show your efforts, then we can help. There are plenty of tutorials in the internet, just google "java parsing xml" and you'll find some. – saljuama Jan 07 '16 at 02:51

3 Answers3

0

A great library to use for this is jackson. Research some examples about how to read XML.

In the readValue() methods of objectmapper, just specify the Map.class as the result type, it should be supported.

start here https://fasterxml.github.io/jackson-databind/javadoc/2.5/com/fasterxml/jackson/databind/ObjectMapper.html

brendon
  • 363
  • 3
  • 11
0

Use Xstream, you can read more about it here : http://x-stream.github.io/

see How to convert XML to java.util.Map and vice versa

Community
  • 1
  • 1
shrewquest
  • 541
  • 1
  • 7
  • 22
  • However, The problem is occurring import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.io.xml.DomDriver; XStream xStream = new XStream(new DomDriver()); Map map2 = (Map) xStream.fromXML(xmlfile); System.out.println(map2); That 's what the problem – TaeHwan. Park Jan 07 '16 at 04:59
0

Underscore-java library can convert xml to Map. I am the maintainer of the project. Live example.

import com.github.underscore.U;
import java.util.*;
    
public class Main {

  @SuppressWarnings("unchecked")
  public static void main(String[] args) {
    Map<String, Object> map = (Map<String, Object>) U.fromXml(
    "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\r\n" + 
    "<yesone>\r\n" + 
    "<doc>\r\n" + 
    "    <doc_type>B</doc_type>\r\n" + 
    "    <seq>2015121100007453</seq>\r\n" + 
    "    <att_year>2015</att_year>\r\n" + 
    "    <att_FrmMm>0</att_FrmMm>\r\n" + 
    "    <att_ToMm>0</att_ToMm>\r\n" + 
    "    <att_inqrMm>01,02,03,04,05,06,07,08,09,10,11,12</att_inqrMm>\r\n" + 
    "</doc>\r\n" + 
    "<form form_cd=\"D101Y\">\r\n" + 
    "    <man resid=\"6611201653606\" name=\"dolch\">\r\n" + 
    "        <data dat_cd=\"D01\" busnid=\"1168140432\" trade_nm=\"gagag(sa)\" acc_no=\"00001532\">\r\n" + 
    "            <start_dt>19940708</start_dt>\r\n" + 
    "            <end_dt>99991231</end_dt>\r\n" + 
    "            <com_cd>434</com_cd>\r\n" + 
    "            <sum>1041000</sum>\r\n" + 
    "        </data>\r\n" + 
    "    </man>\r\n" + 
    "</form>\r\n" + 
    "\r\n" + 
    "<form form_cd=\"E102Y\">\r\n" + 
    "    <man resid=\"6611201653606\" name=\"dolch\">\r\n" + 
    "        <data dat_cd=\"E01\" busnid=\"1244661351\" trade_nm=\"gwerqreqxd\" acc_no=\"9601687930560\">\r\n" + 
    "            <com_cd>110</com_cd>\r\n" + 
    "            <ann_tot_amt>1200000</ann_tot_amt>\r\n" + 
    "            <tax_year_amt>0</tax_year_amt>\r\n" + 
    "            <ddct_bs_ass_amt>1200000</ddct_bs_ass_amt>\r\n" + 
    "        </data>\r\n" + 
    "    </man>\r\n" + 
    "</form>\r\n" + 
    "\r\n" + 
    "<form form_cd=\"F102Y\">\r\n" + 
    "    <man resid=\"6611201653606\" name=\"dolch\">\r\n" + 
    "        <data dat_cd=\"F01\" busnid=\"6108155691\" trade_nm=\"(asd)gagsgs\" acc_no=\"21010625891874\">\r\n" + 
    "            <com_cd>150</com_cd>\r\n" + 
    "            <pension_cd>12</pension_cd>\r\n" + 
    "            <ann_tot_amt>8519160</ann_tot_amt>\r\n" + 
    "            <tax_year_amt>0</tax_year_amt>\r\n" + 
    "            <ddct_bs_ass_amt>8519160</ddct_bs_ass_amt>\r\n" + 
    "        </data>\r\n" + 
    "    </man>\r\n" + 
    "</form>\r\n" + 
    "\r\n" + 
    "</yesone>");
        
    System.out.println(map);
    // {yesone={doc={doc_type=B, seq=2015121100007453, att_year=2015, att_FrmMm=0, att_ToMm=0, ...
  }
}
Valentyn Kolesnikov
  • 2,029
  • 1
  • 24
  • 31