XML与JAVA

本文详细介绍了XML的学习原因,包括网络数据传输、数据存储和配置文件等应用场景。相较于Java对象传输,XML具有跨语言优势。文中还阐述了XML的基本语法,如文档声明、标记规则和注释,并提供了Java读取、解析XML文件的示例代码。此外,提到了XPath用于选取XML节点的方法。最后,讨论了XML与Java生成XML文件的两种方式。
摘要由CSDN通过智能技术生成

为什么学习XML?

- 网络数据传输

- 数据存储

- 配置文件

为什么不使用java传送对象呢?跨语言(前后端)

语法格式

1. XML文档说明:<?xml version="1。0" encoding=“utf-8” ?>

2.标记

- 根节点只能有一个

- 标记名称区分大小写

- 标记可以嵌套,但不能交叉

- 标记名称允许重复

- 标记里可以有属性,键与值之间使用等号,多个属性使用空格隔开,属性值使用引号,多个属性名称不能重复

3. 注释不能嵌套注释,注释开始<!--注释结束-->

 4. 不被解析器解析的数据CDATA

 

 

Java读取xml文件

导入jar包

- 项目里添加lib文件夹,复制以下jar包

- 右击导入的包,选择add as library

处理xml文件

- 获取输入流

FileInputStream fileInputStream = new FileInputStream("xml文件路径");

- 创建解析器

SAXReader saxReader = new SAXReader();

- 读取xml获得Document对象

Document document = saxReader.read(fileInputStream);

- 获取根元素

Element root = document.getRootElement();

- 解析元素,如获取元素的名称

root.getName();

- 循环获取root里的所有元素:

        attributeValue获取元素的属性值

        elementText直接获取元素中的子元素内容

        root.element("子元素的名称")可以直接获取子元素

for (Object element: root.elements()) {
    Element book = (Element) element;
    System.out.println(book.attributeValue("id"));
    System.out.println(book.elementText("name"));
    System.out.println(book.elementText("info"));
}

- 关闭输入流

fileInputStream.close();

读取网络传输的xml

- 创建xml来源的url

URL url = new URL("目标url地址");
URLConnection connection = url.openConnection();

- 获得输入流

InputStream inputStream = connection.getInputStream();

- 创建解析器

SAXReader saxReader = new SAXReader();

- 读取xml获得Document对象

Document document = saxReader.read(inputStream);

- 后续操作相同

解析xml-》xpath

- xpath路径:根节点开始以/开头,相对路径//,.表示当前节点,..表示父节点,@选择属性

- 以//选择,可以获得所有name的节点

 - 以//book[@id="1001]//name(此时结果只有一个,可以使用singleNode)

通过JAVA生成XML

方式一:通过DocumentHelp创建空文档对象,不断往文档对象里添加元素

 

 

 

 ctrl+alt + l可以对生成的xml进行格式化

 

方式二:利用xstream将对象转化为xml文件

 

解析区别

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值