XML

什么是XML?

    xml是可扩展标记语言,标准通用标记语言的子集,简称XML
    xml总之就是传输数据的,而非是页面显示数据的
    xml标签没有被预定义,需要自定义标签
    xml被设计为具有自我描述性
    xml是W3C(World Wide Web Consortium,万维网联盟)的推荐标准

XMl的特点

  1. xml可以从html中分离数据,既能够在html文件之外将数据存储在xml文档中,这样可以使开发者集中精力使用html做好数据的显示和布局,并确保数据改动时不会导致html文件也需要改动,从而方便维护页面。
  2. xml可用于交换数据,基于xml可以再不兼容的系统之间交换数据,计算机系统和数据库系统所存储的数据有多种形式,对于开发者而言,最消耗的时间的工作就是在遍布网络的系统之间交换数据。把数据转换为xml格式存储大大减少了交换数据的复杂性,还可以使这些数据能被不同的程序读取。
  3. 利用xml可以共享数据。xml数据以纯文本格式存储,这使得xml更易读、便于记录、便与调试,使不同系统、不同程序之间的数据共享变得更加简单
  4. xml不是代替html的,html着重于如何将文本显示到浏览器中,而xml是如何将数据以结构化的方式表示。

HTML和XML的区别

xml不是替代html的,它们是为了不同的目标而设计的,xml是用来传输和存储数据的,而html是用来显示数据,其焦点是数据显示的。html语法表松散,xml语法比较严格。html中的标签都是定义好的,而xml的标签是自己定义的。

XML用处

数据存储
配置文件
数据传输

基本语法

  1. 必须文档声明
    必须写到第一行;
    写法:

     <?xml version="1.0" encoding="utf-8" standalone="yes"?>
    

version 版本号
encoding 字符编码
standalone 指定文档是否为独立的 yes或者no,是否可以引用其他文件

2.规则
所有xml元素必须有关闭标签
xml标签对大小写敏感
必须正确的嵌套
文档必须有根元素
属性值必须加引号

3.元素
名称可以包含字母、数字、以及其他字符

XML解析

  1. DOM解析;
  2. SAX解析;
  3. JDOM解析;
  4. DOM4J解析。
    其中前两种属于基础方法,是官方提供的平台无关的解析方式;后两种属于扩展方法,它们是在基础的方法上扩展出来的,只适用于java平台。
DOM解析

摘自https://blog.csdn.net/a1353206432/article/details/80583302

DOM解析的xml分析器是将其转换为一个对象模型的集合,用树这种数据结构对信息进行储存。通过DOM接口,应用程序可以在任何时候访问xml文档中的任何一部分数据,因此这种利用DOM接口访问的方式也被称为随机访问。

编写xml文件
<?xml version="1.0" encoding="utf-8"?><!--文档声明-->
<bookstore>
   <book>
       <author>格林童话</author>
       <price>10.0</price>
   </book>
   <book>
       <author>Java入门到放弃</author>
       <price>10.0</price>
   </book>
   <book>
       <author>滴滴</author>
       <price>10.0</price>
   </book>
</bookstore>
DOM解析操作步骤
  1. 建立DocumentBuilderFactor,用于获得DocumentBuilder对象:

    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

  2. 建立DocumentBuidler:

    DocumentBuilder builder = factory.newDocumentBuilder();

  3. 建立Document对象,获取树的入口:

    Document doc = builder.parse(“xml文件的相对路径或者绝对路径”);

  4. 建立NodeList:

    NodeList n1 = doc.getElementByTagName(“读取节点”);

  5. 进行xml信息获取

代码
// xml的DOM解析方法
class XmlDomA{
    public static void main(String[] args) throws ParserConfigurationException, IOException, SAXException {
//        1. 建立DocumentBuilderFactor,用于获得DocumentBuilder对象:
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

//        2. 建立DocumentBuidler:
        DocumentBuilder builder = factory.newDocumentBuilder();

//        3. 建立Document对象,获取树的入口:
        Document doc = builder.parse("BasicSkills\\src\\main\\resources\\TestA.xml");

//        4. 建立NodeList:
        NodeList node = doc.getElementsByTagName("book");
        
//        5. 进行xml信息获取
        for(int i=0;i<node.getLength();i++) {
            Element e = (Element) node.item(i);
            System.out.println("书名:" +
                    e.getElementsByTagName("author").item(0).getFirstChild().getNodeValue());
            System.out.println("价钱:" +
                    e.getElementsByTagName("price").item(0).getFirstChild().getNodeValue());
        }
     }
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值