如何获取案例中的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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。