【发布时间】:2016-06-04 03:10:20
【问题描述】:
我正在尝试从 xml 文件转换为 java,我对此没有经验。所以有人可以帮我解决这个问题。 这是我下面的书课。
import java.util.*;
import javax.xml.bind.annotation.*;
@XmlRootElement(name= "book")
public class book {
private String ID;
private String title;
private String author;
private String genre;
private String price;
private String publicationDate;
private String discription;
public book(String a, String b, String c, String d, String e, String f, String g ){
ID = a;
title = b;
author = c;
genre = d;
price = e;
publicationDate = f;
discription = g;
}
@XmlElement
public String getID() {
return ID;
}
public void setID(String iD) {
ID = iD;
}
@XmlElement
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
@XmlElement
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
@XmlElement
public String getGenre() {
return genre;
}
public void setGenre(String genre) {
this.genre = genre;
}
@XmlElement
public String getPrice() {
return price;
}
public void setPrice(String price) {
this.price = price;
}
@XmlElement
public String getPublicationDate() {
return publicationDate;
}
public void setPublicationDate(String publicationDate) {
this.publicationDate = publicationDate;
}
@XmlElement
public String getDiscription() {
return discription;
}
public void setDiscription(String discription) {
this.discription = discription;
}
}
现在我想将 xml 文件转换为 java 对象,我将在下面附上 xml 文件。`
<?xml version="1.0"?>
<catalog>
<book id="1">
<author>Isaac Asimov</author>
<title>Foundation</title>
<genre>Science Ficition</genre>
<price>164</price>
<publish_date>1951-08-21</publish_date>
<description>Excellent.</description>
</book>
<book id="2">
<author>Isaac Asimov</author>
<title>Foundation and Empire</title>
<genre>Science Fiction</genre>
<price>79</price>
<publish_date>1952-10-12</publish_date>
<description>Good.</description>
</book>
</catalog>
到目前为止,我尝试通过在我的 man 类中创建下面的方法来转换和读取 xml 文件
enter code here
import java.io.File;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
public class Demo {
public static void unma() throws JAXBException {
JAXBContext jc = JAXBContext.newInstance(book.class);
Unmarshaller um = jc.createUnmarshaller();
book b = (book) um.unmarshal(new File("src/Dv600/books.xml"));
System.out.println("information");
System.out.println("id" + b.getID());
System.out.println("Author" + b.getAuthor());
System.out.println("description" + b.getDiscription());
}
public static void main(String[] args) throws JAXBException {
unma();
}
}
【问题讨论】:
-
它不工作它给了我错误。但我认为我没有正确转换它我想将此 xml 文件转换为 java 对象。
-
请发布错误。
-
您需要发布异常,以便我们可以看到出了什么问题。但我的第一个猜测是它在这个语句中找不到你的 XML 文件
new File("src/Dv600/books.xml")
标签: java xml unmarshalling