今天是黑马第七期培训开始日期前的一天,按照黑马申请流程,我到了入学考试的这一步,昨天上午开始收到题,一共10题,到做完了八题已经是今天的凌晨3点拉,感觉困了就 睡了,直到今天10点多才起床,又继续做完最后2题,到了中午1点多了,提交上去,却错过了黑马第七期报名的时间,无缘第七期了,虽然如此,但学习还是得继续,好吧,开始java web的学习吧。
(1)、XML(可扩展的标记语言)
1,xml介绍
xml文件的语法和HTML类似,也是一种标记语言,作为一种通过的数据交换格式,XML的应用越来越广,比如许多配置文件都是采用Xml的格式,并且它可以存放数据,可以当小型数据库使,还可以序列化对象来用作数据存储传输。
xml的格式如下:
<?xml version="1.0" encoding="utf-8" ?> //这个的作用就是告诉浏览器 这个文档是xml文件
<qzone>
<result type="0">
<root>
<NeedCheck>1</NeedCheck>
<cache>2</cache>
<item0>iamsujie.com</item0>
<item1>v.sohu.com</item1>
<item85>bitauto.com</item85>
<item86>zjol.com.cn</item86>
<item9>discuz.net</item9>
</root>
</result>
</qzone>
xml文件标记名称可以包含字母、数字(数字和下划线不能开头)、以及其他某些字符,并且区分大小写,不能包含空格。
xml文件标签也可以定义属性(Attribute),如:<售价 单位="元">200</售价>
2,xml的 CDATA区域
CDATA是character data的简写,即字符数据,在xml里面表示这个区域里不用被解析的原始数据区,以<![CDATA[开始,]]>结束。
学习xml知识,至少需要掌握1、Xml的DTD约束和DTD校验, 2、使用dom4j解析xml文件,来进行增删改查的操作。
1,Xml的DTD约束和DTD校验:
book.dtd文件
<!ELEMENT 书架 (书+)> //表示书架为跟节点,它可以包含多本<书>
<!ELEMENT 书 (书名,作者,售价)>
<!ELEMENT 书名 (#PCDATA> // #PCDATA 表示字符串的意思
<!ELEMENT 作者 (#PCDATA)>
<!ELEMENT 售价 (#PCDATA)>
book.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE 书架 SYSTEN "book.dtd">
<书架>
<书>
<书名>java</书名>
<作者>think</作者>
<售价>63</售价>
</书>
<书>
<书名>C#</书名>
<作者>mic</作者>
<售价>34</售价>
</书>
</书架>
-------------------------------------------------
2,使用dom4j解析xml文件,来进行增删改查的操作:
package cn.itoyb.xmldocment;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
import java.io.*;
public class XmlSubject {
public void generateDocument() {
Document document = DocumentHelper.createDocument();
Element catalogElement = document.addElement("书架");//添加一个跟节点
catalogElement.addComment("网上书店");//xml的注释信息
catalogElement.addProcessingInstruction("target", "text");
Element journalElement = catalogElement.addElement("书");//在跟节点下创建一个子节点
journalElement.addAttribute("类型", "java书籍"); //书节点的属性和属性值
journalElement.addAttribute("版权", "原创");
Element articleElement = journalElement.addElement("书名");//在书下创建一个书名的节点
articleElement.setText("java开发详解");//书名标签的text值
Element titleElement = journalElement.addElement("作者"); //同上
titleElement.setText("孙鑫");
Element authorElement = journalElement.addElement("售价");
Element firstNameElement = authorElement.addElement("大陆");
firstNameElement.setText("88元");
Element lastNameElement = authorElement.addElement("海外");
lastNameElement.setText("106元");
// document.addDocType("catalog", null, "file://c:/Dtds/catalog.dtd");
try {
OutputFormat format = OutputFormat.createPrettyPrint(); //设置xml的编码格式
format.setEncoding("UTF-8");
//创建一个xml文件,并把上面document写入到该xml里
XMLWriter output = new XMLWriter(new FileOutputStream("c:/book.xml"));
output.write(document);
output.close();
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
public static void main(String[] argv) {
XmlSubject dom4j = new XmlSubject();
dom4j.generateDocument();
System.out.println("xml文件创建成功!");
}
}
book.xml 效果