java实现把xml文件转换成csv文件
时间: 2023-08-18 11:05:20 浏览: 252
将xml文件转换成csv格式
4星 · 用户满意度95%
可以使用Java提供的DOM或SAX解析器来解析XML文件,然后将解析出来的数据转换成CSV格式并写入到文件中。
以下是一个使用DOM解析XML并将数据转换成CSV格式的示例代码:
```java
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
public class XmlToCsvConverter {
public static void main(String[] args) {
try {
// 创建DOM解析器工厂
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
// 创建DOM解析器
DocumentBuilder builder = factory.newDocumentBuilder();
// 解析XML文件
Document doc = builder.parse("input.xml");
// 获取根元素
Element root = doc.getDocumentElement();
// 获取所有子元素
NodeList nodes = root.getChildNodes();
// 创建输出文件
PrintWriter pw = new PrintWriter(new FileWriter("output.csv"));
// 遍历子元素并将数据写入到文件中
for (int i = 0; i < nodes.getLength(); i++) {
Node node = nodes.item(i);
if (node.getNodeType() == Node.ELEMENT_NODE) {
Element element = (Element) node;
// 以逗号分隔符拼接数据
String data = element.getAttribute("id") + ","
+ element.getElementsByTagName("name").item(0).getTextContent() + ","
+ element.getElementsByTagName("age").item(0).getTextContent();
pw.println(data); // 写入文件
}
}
pw.close(); // 关闭文件
} catch (ParserConfigurationException | SAXException | IOException ex) {
ex.printStackTrace();
}
}
}
```
在上面的代码中,我们使用DOM解析器读取XML文件,并遍历所有子元素,将其转换成CSV格式并写入到输出文件中。请替换`input.xml`文件路径和输出文件路径,并根据实际情况修改代码以适应不同的XML结构。
阅读全文