前言: 关于 xml 特点和基础知识,可以菜鸟教程进行学习:http://www.runoob.com/xml/xml-tutorial.html

本系列笔记,主要介绍 xml 在 web 开发时需要了解的知识

XML 在页面显示数据

 XML 指可扩展标记语言(eXtensible Markup Language)。

 XML 被设计用来传输和存储数据。

一、怎么在页面上只显示数据?

 大家在网页上可能都见过这样的 xml 文件:

 这是没有任何样式的 xml,打开 tomcat 什么的服务器,在网页上浏览 xml 文件的样式,它的源码是:

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

<addresslist>
<linkman>
<name>肖朋伟</name>
<id>2236</id>
<company>null</company>
<email>xpwi@qq.com</email>
<tel>66666</tel>
</linkman>
</addresslist>

 怎样在页面上只显示文字,并加上特定的样式呢?那就要用到 css 了

(1)先自己写一个 css 样式:

name{
display: block;
color: brown;
font-size: 20pt;
font-weight: bold;
} id, company, email, tel, site{
display: block;
color: black;
font-size: 14pt;
font-weight: normal; }

(2)在 xml 文件中引入这个 css 文件:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- 加上样式,注意路径 -->
<?xml-stylesheet type="text/css" href="../css/first.css" ?> <addresslist>
<linkman>
<name>肖朋伟</name>
<id>2236</id>
<company>null</company>
<email>xpwi@qq.com</email>
<tel>66666</tel> </linkman>
</addresslist>

(3)就会这样显示了:

(4)然后,xml 也可以像 html 标签那样,加属性,例如:

<tel id = "userTel">66666</tel>

XML与web开发-01- xml 解析

在 xml 文件,更多的用来描述信息的内容,

所以在得到一个 XML 文档后,应该利用程序按照其中元素的定义名称取出对应内容,

这样的操作就称为 xml 解析。

W3C 定义了 SAX 和 DOM 两种解析方式

XML - DOM 解析操作

在应用程序中,基于 DOM 的 XML 分析器将一个 XML 文档转换成一个对象模型的集合,通常称为 DOM 树

应用程序正是通过对这个对象模型的操作,来实现对 XML 文档数据的操作。

准备一个 xml 文件(路径是 D:\xml\first.xml,下面要用目录,注意):

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

<addresslist>
<linkman>
<name>肖朋伟</name>
<id>2236</id>
<company>null</company>
<email>xpwi@qq.com</email>
<tel>66666</tel> </linkman>
</addresslist>

java 解析文件:

【注意】:

1.目录,我是新建一个包 xml ,再新建一个 dom.java

2.注意解析的 xml 路径,要根据自己的路径设置

3.如果自己写代码,注意一下导包,Document,是 org.w3c.dom.Document

// 目录,我是新建一个包 xml ,再新建一个 dom.java
package xml; import org.w3c.dom.NodeList;
import org.xml.sax.SAXException; //注意 Document,是 org.w3c.dom.Document
//默认导包会是 javax 那个,注意一下
import org.w3c.dom.Document;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import java.io.File;
import java.io.IOException; public class dom {
public static void main(String[] args){
//(1)建立 DocumentBuilderFactory,用来得到 DocumentBuilder
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); //(2)通过 DocumentBuilderFactory,来得到 DocumentBuilder
DocumentBuilder builder = null;
try{
builder = factory.newDocumentBuilder(); }catch (ParserConfigurationException e){
e.printStackTrace();
} //(3)定义
Document doc = null;
try {
//读取指定路径的 xml 文件,要先有一个这样的文件
doc = builder.parse("D://xml/" + File.separator + "first.xml");
} catch (SAXException e){
e.printStackTrace();
} catch (IOException e){
e.printStackTrace();
} //(4)查找 name 的节点
NodeList nl = doc.getElementsByTagName("name"); //(5)输出 NodeList 中第一个子节点中文本节点的内容
System.out.println("姓名:" + nl.item(0).getFirstChild().getNodeValue()); } }

运行就会在控制台打印:

DOM 解析4个核心操作接口:

  • Document:此接口代表了整个 XML 文档,代表整个 DOM 树的树根,提供了对文档中的数据进行访问和操作的入口,

    通过 Document 节点可以访问 XML 文件中所有的元素内容。Document 接口的常用方法如下表:

  Document 接口的常用方法

No. 方 法 类 型 描 述
1 public NodeList getElementsByTagName(String name) 普通 取得指定节点名称的 NodeList
2 public Element createElement(String tagName)throws DOMException 普通 创建一个指定名称的节点
3 public Text createTextNode(String data) 普通 创建一个文本内容节点
4 Element createElement(String tagName)throws DOMException 普通 创建一个节点元素
5 public Attr createAttribute(String name)throws DOMException 普通 创建一个节点元素
  • Node:此接口在整个 DOM 树中具有剧组轻重的地位,DOM 操作的核心接口中有很大一部分是

    从 Node 接口继承过来的。例如,Document、Element、Atrr 等接口

  Node 接口的常用方法

No. 方 法 类 型 描 述
1 Node appendChild(Node newChild)throws DOMException 普通 在当前节点下增加一个新节点
1 Node appendChild(Node newChild)throws DOMException 普通 在当前节点下增加一个新节点
1 Node appendChild(Node newChild)throws DOMException 普通 在当前节点下增加一个新节点
1 Node appendChild(Node newChild)throws DOMException 普通 在当前节点下增加一个新节点
1 Node appendChild(Node newChild)throws DOMException 普通 在当前节点下增加一个新节点
1 Node appendChild(Node newChild)throws DOMException 普通 在当前节点下增加一个新节点
1 Node appendChild(Node newChild)throws DOMException 普通 在当前节点下增加一个新节点

XML与web开发-01- 在页面显示和 XML DOM 解析的更多相关文章

  1. 7、XML加强/Web开发/Tomcat

    1 XML加强 XML加强 1)Dom4j修改XML文档 写出xml文档: XMLWriter writer = new XMLWriter() writer.wrtite(doc); 增加: Doc ...

  2. Web开发中,页面渲染方案

    转载自:http://www.jianshu.com/p/d1d29e97f6b8 (在该文章中看到一段感兴趣的文字,转载过来) 在Web开发中,有两种主流的页面渲染方案: 服务器端渲染,通过页面渲染 ...

  3. 《Flask Web开发实战:入门、进阶与原理解析(李辉著 )》PDF+源代码

    一句话评价: 这可能是市面上(包括国外出版的)你能找到最好的讲Flask的书了 下载:链接: https://pan.baidu.com/s/1ioEfLc7Hc15jFpC-DmEYBA 提取码: ...

  4. Web开发中错误页面的配置

    一.创建错误处理页. 1)web.xml里面添加 <error-page> <error-code>404</error-code> <location> ...

  5. WEB开发中的页面跳转方法总结

    PHP header()函数跳转 PHP的header()函数非常强大,其中在页面url跳转方面也调用简单,使用header()直接跳转到指定url页面,这时页面跳转是302重定向: $url = & ...

  6. python +Django 搭建web开发环境初步,显示当前时间

    1.python 的安装 网上很多关于django跟python 开发的资料,这块我正在实习准备用这个两个合起来搞一个基于web 的东西出来现在开始学习,写点东西记录一下心得. 开发环境是window ...

  7. WORDPRESS开发(一)自定义页面显示分类目录

    第一步:自定义一个页面,如index.php 第二步:打开index.php文件,引用wp-blog-header.php文件 require('wp-blog-header.php'); 第三步使用 ...

  8. (6)Spring Boot web开发 --- 错误处理页面

    文章目录 处理时间(`Date`)类型 thymeleaf 页面拼接字符串 映射路径占位符 使用 put.delete 方法 错误处理机制 处理时间(Date)类型 Spring Boot 进行参数绑 ...

  9. 移动web开发01

    pc端的支持情况.IE9以下的版本就会全军覆没.移动端就不会出现版本支持问题. 因为第一个孩子是p,但是他又是在span里面选,所以根本选不出来,报错.改成第二个孩子才可以选出来. 这样就可以选出sp ...

随机推荐

  1. 【算法笔记】A1071 Speech Patterns

    1071 Speech Patterns (25 分)   People often have a preference among synonyms of the same word. For ex ...

  2. swagger注释API详细说明

    API详细说明 注释汇总 @RequestMapping此注解的推荐配置 value method produces 示例: @ApiOperation("信息软删除") @Api ...

  3. [转] 使用HTTPS在Nexus Repository Manager 3.0上搭建私有Docker仓库

    FROM: https://www.hifreud.com/2018/06/06/03-nexus-docker-repository-with-ssl/ 搭建方式 搭建SSL的Nexus官方提供两种 ...

  4. Linux网络编程服务器模型选择之并发服务器(下)

    前面两篇文章(参见)分别介绍了循环服务器和简单的并发服务器网络模型,我们已经知道循环服务器模型效率较低,同一时刻只能为一个客户端提供服务,而且对于TCP模型来说,还存在单客户端长久独占与服务器的连接, ...

  5. 【es6】字符串扩展

    8.模板字符串 模板字符串(template string)是增强版的字符串,用反引号(`)标识.它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量. ${}中可以放   1. ...

  6. JavaScript设计模式-3.原型模式

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  7. 性能调优-CPU方面,内存方面

    CPU调优 首先要清楚数据库应用的分类,一般分为两类:OLTP(Online Transaction Processing,在线事务处理)和OLAP(Online Analytical Process ...

  8. 使用JS传递数组型数据回服务器

    //为数组添加一个方法,判断某个值是否存在于数组中 Array.prototype.in_array = function (e) { for (i = 0; i < this.length & ...

  9. Java泛型的逆变

    在上篇<Java泛型的协变>这篇文章中遗留以下问题——协变不能解决将子类型添加到父类型的泛型列表中.本篇将用逆变来解决这个问题. 实验准备 我们首先增加以下方法,见代码清单1所示. 代码清 ...

  10. 使用webpack loader加载器

    了解webpack请移步webpack初识! 什么是loader loaders 用于转换应用程序的资源文件,他们是运行在nodejs下的函数 使用参数来获取一个资源的来源并且返回一个新的来源(资源的 ...