IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 前端-xml -> 正文阅读

[JavaScript知识库]前端-xml

?
?
一个XML文件分为如下几部分内容

  1. 文档声明
  2. 元素
  3. 属性
  4. 注释
  5. CDATA区、特殊字符

?
文档声明
<?xml version="1.0" encoding="utf-8"?>

  1. XML声明放在XML文档的第一行
  2. version --文档符合XML1.0规范"
  3. encoding --文档字符编码,比如"utf-8
    ?

元素
1.元素语法要求

  1. 每个XML文档必须有且只有一个根元素
  2. 根元素是一个完全包括文档中其他所有元素的元素
  3. 根元素的起始标记要放在所有其他元素的起始标记之前
  4. 根元素的结束标记要放在所有其他元素的结束标记之后
  5. XML元素指XML文件中出现的标签,一个标签分为开始标签和结束标签,一个标签有如下几种书写形式包含标签体:<a>www.sohu.cn</a>
    不含标签体的:<a></a>,简写为:<a/>
  6. 一个标签中也可以嵌套若干子标签。但所有标签必须合理的嵌套,绝对不允许交叉嵌套
    ?

xml元素命令规则

  1. 区分大小写,例如,<P><p>是两个不同的标记
  2. 不能以数字开头
  3. 不能包含空格
  4. 名称中间不能包含冒号(:) 。
  5. 如果标签单词需要间隔,建议使用下划线比如<book_title>hello</book_title>
    ?

属性

<Student ID="100">
<Name>TOM</Name>
</Student>

1.属性值用双引号(")或单引号(')分隔(如果属性值中有',用"分隔;有",用'分隔)
2. 一个元素可以有多个属性,它的基本格式为:<元素名属性名=“属性值”>
3. 特定的属性名称在同一个元素标记中只能出现一次
4. 属性值不能包括&I字符
?

注释

  1. <!--这是一个注释-->
  2. 注释内容中不要出现- -
  3. 不要把注释放在标记中间;错误写法<Name <!--the name-->>TOM</Name>
  4. 注释不能嵌套
  5. 可以在除标记以外的任何地方放注释

?
CDATA、特殊字符
有些内容不想让解析引擎执行,而是当作原始内容处理(即当做普通文本),可以使用CDATA包括起来,CDATA节中的所有字符都会被当作简单文本,而不是XML标记。
1.语法:

<![GDATA[
这里可以把你输入的字符原样显示,不会解析xml
]]>
  1. 可以输入任意字符(除]]>外)
  2. 不能嵌套
    ?

xml转义字符

转义符符号
<<
>>
&&
""
''

?

格式正规的XML文档

  1. XML声明语句<?xml version="1.0" encoding="utf-8"?>
  2. 必须有且仅有一个根元素
  3. 标记大小,区分大小写的
  4. 属性值用引号
  5. 标记成对
  6. 空标记关闭
  7. 元素正确嵌套

?

<?xml version="1.0" encoding="UTF-8" ?>
<!-->
1 xml :表示该文件的类型xml
2.version="1.0"版本
3 encoding="UTF-8”文件编码
4. students: root元素/根元素,程序员自己来定
5. <student></student>表示students一个子元素,可以有多个
6. id就是属性name , age, gender是student元素的子元素
7.xml也可以被映射成xml dom树(xml文件是树形结构,有层次感)
-->
<students>
    <student>
        <name>张三</name>
        <age>18</age>
        <gender></gender>
    </student>
    <student>
        <name>李四</name>
        <age>20</age>
        <gender></gender>
    </student>
</students>

?
?

XML的作用

在这里插入图片描述
在这里插入图片描述

创建xml文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

<?xml version="1.0" encoding="UTF-8" ?>
<!-->
1 xml :表示该文件的类型xml
2.version="1.0"版本
3 encoding="UTF-8”文件编码
4. students: root元素/根元素,程序员自己来定
5. <student></student>表示students一个子元素,可以有多个
6. id就是属性name , age, gender是student元素的子元素
7.xml也可以被映射成xml dom树(xml文件是树形结构,有层次感)
-->
<students>
    <student>
        <name>张三</name>
        <age>18</age>
        <gender></gender>
    </student>
    <student>
        <name>李四</name>
        <age>20</age>
        <gender></gender>
    </student>
</students>

xml语法

在这里插入图片描述

文档说明

在这里插入图片描述

元素

在这里插入图片描述
5.XML元素指XML文件中出现的标签,一个标签分为开始标签和结束标签,一个标签有如下几种书写形式包含标签体:<a>www.sohu.cn</a>
不含标签体的:<a></a>,简写为:<a/>
6.一个标签中也可以嵌套若干子标签。但所有标签必须合理的嵌套,绝对不允许交叉嵌套

在这里插入图片描述
在这里插入图片描述

属性

在这里插入图片描述

<?xml version="1.0" encoding="UTF-8" ?>
<!--
    id='01'也是正确写法
    如果属性值有”则使用’包括属性比如 id="xxx'yyy"
    如果属性值有’则使用”包括属性比如 id='xxx"yyy'
    属性名在同一个元素标记只能出现一次<stduent id=""01" id="03">错误的
    属性值不能包括&字符比如:<stduent id="0&1">是错误的
    相同子元素是可以有多个的
-->
<students>
    <student id="1'0'1">
        <name>张三</name>
        <name>王五</name>
        <age>18</age>
        <gender></gender>
    </student>
    <student>
        <name>李四</name>
        <age>20</age>
        <gender></gender>
    </student>
</students>

注释

在这里插入图片描述

CDATA、特殊字符

在这里插入图片描述

<?xml version="1.0" encoding="UTF-8" ?>


<!--如果希望把某些字符串,当做普通文本,使用CDATA包括-->

<students>
    <student>
        <name>李四</name>
        <age>20</age>
        <gender></gender>
        <code>
            <!--如果希望把某些字符串,当做普通文本,使用CDATA包括-->
            <![CDATA[
                 <script data-compress=strip>
                 function h(obj){
                 obj.style.behavior='url(#qefault#homepage) ';
                 var a = obj.setHomePage( ' // www.baidu.com/');
                 }
            </script>
            ]]>
        </code>
    </student>
</students>

xml转义字符

在这里插入图片描述
在这里插入图片描述

dom4j

xml解析技术

在这里插入图片描述
映射成xml dom树后,就可以调用Java dom4j API来使用
在这里插入图片描述
上图表示下面的 XML 中的一本书:

<bookstore>
<book category="COOKING">
  <title lang="en">Everyday Italian</title> 
  <author>Giada De Laurentiis</author> 
  <year>2005</year> 
  <price>30.00</price> 
</book>
<book category="CHILDREN">
  <title lang="en">Harry Potter</title> 
  <author>J K. Rowling</author> 
  <year>2005</year> 
  <price>29.99</price> 
</book>
<book category="WEB">
  <title lang="en">Learning XML</title> 
  <author>Erik T. Ray</author> 
  <year>2003</year> 
  <price>39.95</price> 
</book>
</bookstore>

获取Document对象的三种方式

在这里插入图片描述

dom4j应用

在这里插入图片描述
在这里插入图片描述

    public void loadXML() throws DocumentException {
        //得到一个解析器
        SAXReader reader = new SAXReader();
        Document document = reader.read(new File("src\\students.xml"));
        System.out.println(document);

    }

document --> rootElement --> content --> elementData(xml所有的属性存放在这里) --> 1(代表一个student节点) --> content --> elementData(student节点中所有属性存放在这里) --> 1(name节点) --> content --> text(找到name的值)
在这里插入图片描述

<?xml version="1.0" encoding="utf-8"?>
<students>
    <student id="01">
        <name>小龙女</name>
        <gender></gender>
        <age>16</age>
        <resume>古墓派掌门人</resume>
    </student>
    <student id="02">
        <name>欧阳锋</name>
        <gender></gender>
        <age>18</age>
        <resume>白驼山,蛤蟆神功</resume>
    </student>
</students>

遍历xml指定元素

    public void listStus() throws DocumentException {
        //得到一个解析器
        SAXReader reader = new SAXReader();
        Document document = reader.read(new File("src\\students.xml"));
        //1. 得到rootElement
        Element rootElement = document.getRootElement();
        //2. 得到rootElement的student Elements
        List<Element> students = rootElement.elements("student");
        for (Element student : students) {
            //获取Student元素的name Element
            Element name = student.element("name");
            Element age = student.element("age");
            Element resume = student.element("resume");
            Element gender = student.element("gender");
            System.out.println("学生姓名= " + name.getText() + " "
                    + "年龄=" + age.getText() + " "
                    + "自我介绍=" + resume.getText() + " "
                    + "性别" + gender.getText());
        }
    }

指定读取xml元素

    public void readOne() throws DocumentException {
        //得到一个解析器
        SAXReader reader = new SAXReader();
        Document document = reader.read(new File("src\\students.xml"));
        //1. 得到rootElement
        Element rootElement = document.getRootElement();
        //2.获得第一个学生
        Element student = (Element) rootElement.elements("student").get(0);
        Element name = student.element("name");
        Element age = student.element("age");
        Element resume = student.element("resume");
        Element gender = student.element("gender");
        //3.输出该信息
        System.out.println("学生姓名= " + name.getText() + " "
                + "年龄=" + age.getText() + " "
                + "自我介绍=" + resume.getText() + " "
                + "性别" + gender.getText());
        //4. 获取student元素的属性
        System.out.println("id=" + student.attributeValue("id"));
    }
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-03-08 22:20:01  更:2022-03-08 22:22:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 9:48:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码