我们如何将XML文件转换为CSV?

Rak*_*yal -1 java xml csv

我有一个XML文件

<?xml version="1.0" encoding="ISO-8859-1"?>
<Results>
    <Row>
        <COL1></COL1>
        <COL2>25.00</COL2>
        <COL3>2009-07-06 15:49:34.984</COL3>
        <COL4>00001720</COL4>
    </Row>
    <Row>
        <COL1>RJ</COL1>
        <COL2>26.00</COL2>
        <COL3>2009-07-06 16:04:16.156</COL3>
        <COL4>00001729</COL4>
    </Row>
    <Row>
        <COL1>SD</COL1>
        <COL2>28.00</COL2>
        <COL3>2009-07-06 16:05:04.375</COL3>
        <COL4>00001721</COL4>
    </Row>  
</Results>
Run Code Online (Sandbox Code Playgroud)

我必须将此XML转换为CSV文件.我听说我们可以使用XSLT做这样的事情.我怎样才能在Java(有/没有XSLT)中做到这一点?

Vin*_*jip 5

使用XSLT通常是个坏主意.使用Apache Commons Digester.这很容易使用 - 这是一个粗略的想法::

Digester digester = new Digester();

digester.addObjectCreate("Results/Row", MyRowHolder.class);
digester.addCallMethod("Results/Row/COL1","addCol", 0);
// Similarly for COL2, etc.
digester.parse("mydata.xml");
Run Code Online (Sandbox Code Playgroud)

这将创建一个MyRowHolder实例(这是您提供的类).这个类有一个addCol()方法,可以为每个方法调用<COLn>该标记的内容.