如何获取案例中的XML文档节点内容
2023-12-13 10:09:34
????XML全称为可扩展标记语言(eXtensible Markup Language),是一种用于描述数据的标记语言。它是一种纯文本格式的标记语言,与HTML不同,它是一种用于传输和存储数据的通用格式,而不是一种用于显示数据的格式。XML的设计目标是传输和存储数据,而不关注数据的呈现方式。XML可以用于表示一些结构化的数据,比如配置文件、数据存储、Web服务等。由于它的可扩展性,很容易被应用于不同的领域。那么在java中我们如何获取XML中的内容呢?比如说mybatis配置文件的内容是怎么获取到的呢? 下面我们先来看一个简单的案例:
<book id="123">
<title>Java Programming</title>
<author>
<name>John Smith</name>
<sex>male</sex>
</author>
<publisher>ABC Publishing</publisher>
<price>25.50</price>
</book>
我们先按照节点内容封装一个Java Bean:
public class Book {
private String id;
private String title;
private String authorName;
private String authorSex;
private String publisher;
private double price;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getAuthorName() {
return authorName;
}
public void setAuthorName(String authorName) {
this.authorName = authorName;
}
public String getAuthorSex() {
return authorSex;
}
public void setAuthorSex(String authorSex) {
this.authorSex = authorSex;
}
public String getPublisher() {
return publisher;
}
public void setPublisher(String publisher) {
this.publisher = publisher;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
}
要将XML转换为Java Bean,可以使用Java内置的JAXB API。下面是一个可能的转换代码:
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
import java.io.File;
public class XmlToJavaBean {
public static void main(String[] args) {
try {
File xmlFile = new File("book.xml");
JAXBContext jaxbContext = JAXBContext.newInstance(Book.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
Book book = (Book) jaxbUnmarshaller.unmarshal(xmlFile);
System.out.println(book.getId());
System.out.println(book.getTitle());
System.out.println(book.getAuthorName());
System.out.println(book.getAuthorSex());
System.out.println(book.getPublisher());
System.out.println(book.getPrice());
} catch (JAXBException e) {
e.printStackTrace();
}
}
}
该程序将会输出:
123
Java Programming
John Smith
male
ABC Publishing
25.5
文章来源:https://blog.csdn.net/m0_37649480/article/details/134846842
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!