前言: 关于 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. javascript中prototype与__proto__

    1.prototype:构造函数独有的属性: __proto__:每个对象都有一个名为__proto__的属性: 注意:每个构造函数(自带与自创)都有一个prototype的属性,构造函数的proto ...

  2. Dalvik与JVM区别

    1.Dalvik出现和SDK层面采用java为开发语言的原因 1.1 避免Native作为应用代码导致的因为设备多样化导致App生态了支离破碎,是从Nokia哪里的教训. 1.2 重新实现Dalvik ...

  3. django notes 四: Writing views

    views 其实没什么可看的, 在  django  中 views 就是 controller, 是处理请求的, 就是一个普通的 python 方法. 一般从 request 中提取请求参数, 然后 ...

  4. JVM虚拟机指令

    参考及转载: (1)https://blog.csdn.net/qq_33301113/article/details/73717855 (2)https://blog.csdn.net/wangxf ...

  5. android开发之提高应用启动速度_splash页面瞬间响应_避免APP启动闪白屏

    Application和Activity中的onCreate都进行了优化,基本没有耗时操作,但是启动应用之后还是会闪现一下白色背景,然后才进入Splash页面,对比了一下QQ.微信.微博等客户端,点击 ...

  6. 一次java导出pdf的经历

    近期由于工作需要,需要将html代码导入到pdf中,经过了几种pdf的方案对比后发现IText是最简单和便捷的一种方式,于是乎采用了Itext. PDF生成 第一步:导入Maven依赖 <!-- ...

  7. Go语言学习笔记二: 变量

    Go语言学习笔记二: 变量 今天又学了一招如何查看go的版本的命令:go version.另外上一个笔记中的代码还可以使用go run hello.go来运行,只是这种方式不会生成exe文件. 定义变 ...

  8. 创建.NET Core程序的Nuget Package

    最近在看ASP.NET Core MVC的教材,几乎每章开始都要重复从Empty project开始创建一个ASP.NET Core的项目,然后手动修改project.json,增加经典三目录(Mod ...

  9. vue+webpack项目中使用dev-server搭建虚拟服务器,请求json文件数据,实现前后台分离开发

    在项目开发中,前后台分离,做了假数据,项目使用vue2.0重构,后台也推到重来了,为了不耽误开发进程,我做了虚拟的数据请求,使用vue-cli脚手架搭建的项目文件中dev-server搭建虚拟api请 ...

  10. 为什么会出现__pycache__文件夹?

    为什么会出现__pycache__文件夹? python解释器会将 *.py 脚本文件进行编译,并将编译结果保存到__pycache__目录中. 下次再执行工程时,若解释器发现这个 *.py 脚本没有 ...