[英]Convert XML to Map in java
<?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>
如何将该XML转换为Java Map?
另外,请给我有关库的建议,我需要这样做。
而我想要的,如下
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 ..... .........〜
杰克逊是一个很棒的图书馆。 研究有关如何读取XML的一些示例。
在objectmapper的readValue()方法中,只需将Map.class指定为结果类型,就应该支持它。
使用Xstream,您可以在此处了解更多信息: http : //x-stream.github.io/
Underscore-java库可以将xml转换为Map。 我是该项目的维护者。 现场示例。
import com.github.underscore.lodash.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, ...
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.