首页 > 解决方案 > 解析hml。Spring Batch xml -> txt

问题描述

如何从此 xml 中提取以下数据?它有这样的结构。

<ed:BICDirectoryEntry BIC="042007707"              >
    <ed:Accounts Account="30101810500000000707">
        <ed:RstrList AccRstr="URRS" AccRstrDate="2018-05-14"/>
        <ed:RstrList AccRstr="CLRS" AccRstrDate="2018-05-15"/>
    </ed:Accounts>
</ed:BICDirectoryEntry>

我需要数据。BIC="042007707", AccRstrDate="2018-05-14" 我使用 Spring Batch

我的读者

@Bean
    StaxEventItemReader<Bic> itemReader() {
        StaxEventItemReader<Bic> reader = new StaxEventItemReader<Bic>();
        reader.setResource(new FileSystemResource("my.xml"));
        reader.setFragmentRootElementNames(new String[]{"Bic", "AccRstrDate"});
        Map<String, String> aliaseMap = new HashMap<>();
        aliaseMap.put("bic", "java.hello.Bic");
        XStreamMarshaller marshaller = new XStreamMarshaller();
        marshaller.setAliases(aliaseMap);
        reader.setUnmarshaller(marshaller);
        return reader;
    }

我的作家

@Bean
    public FlatFileItemWriter itemWriter() {
        return new FlatFileItemWriterBuilder<Bic>()
                .name("itemWriter")
                .resource(new FileSystemResource("target/output.txt"))
                .lineAggregator(new PassThroughLineAggregator<>())
                .build();
    }

比克课。它在他的身体里有 2 个参数

@XmlRootElement
public class Bic {

    private String companyBic;
    private Date accRstrDate;

    public Bic() {
    }

    public Bic(String companyBic, String accRstrDate) {
        this.companyBic = companyBic;
        this.accRstrDate= accRstrDate;
    }

    public void setCompanyBic(String CompanyBic) {
        this.companyBic = companyBic;
    }

    public String getCompanyBic() {
        return companyBic;
    }


    public Date getaccRstrDate() {
        return accRstrDate;
    }

    public void setaccRstrDate(String accRstrDate) {
        accRstrDate= accRstrDate;
    }
}

请告诉我是正确的阅读和写作?

标签: xmlspringspring-batch

解决方案


推荐阅读