在Java中使用JAXB将CSV转换为XML可以通过以下步骤实现:
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.1</version>
</dependency>
例如,如果CSV文件包含姓名和年龄两列,你可以创建一个名为Person
的Java类:
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name = "person")
public class Person {
private String name;
private int age;
public String getName() {
return name;
}
@XmlElement
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
@XmlElement
public void setAge(int age) {
this.age = age;
}
}
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class CSVtoXMLConverter {
public static void main(String[] args) {
String csvFile = "input.csv";
String xmlFile = "output.xml";
List<Person> persons = new ArrayList<>();
try (BufferedReader br = new BufferedReader(new FileReader(csvFile))) {
String line;
while ((line = br.readLine()) != null) {
String[] data = line.split(",");
Person person = new Person();
person.setName(data[0]);
person.setAge(Integer.parseInt(data[1]));
persons.add(person);
}
} catch (IOException e) {
e.printStackTrace();
}
// 将Java对象转换为XML
try {
JAXBContext jaxbContext = JAXBContext.newInstance(Person.class);
Marshaller marshaller = jaxbContext.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.marshal(persons, new FileWriter(xmlFile));
} catch (JAXBException | IOException e) {
e.printStackTrace();
}
}
}
在上述代码中,我们首先创建了一个JAXBContext
对象,它表示要转换的Java类。然后,我们创建了一个Marshaller
对象,并设置了一些属性,例如格式化输出。最后,我们调用marshaller.marshal()
方法将Java对象转换为XML文件。
请注意,上述代码中的input.csv
和output.xml
是示例文件名,你需要根据实际情况修改这些文件名。
这是一个简单的示例,演示了如何在Java中使用JAXB将CSV转换为XML。你可以根据实际需求进行修改和扩展。
领取专属 10元无门槛券
手把手带您无忧上云