car.xml:
<?xml version="1.0" encoding="UTF-8"?>
<车辆清单>
<汽车>
<车牌 出产时间="2009年">奥迪</车牌>
<产地>北京</产地>
</汽车>
</车辆清单>
car.dtd:
<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT 车辆清单 (汽车+)>
<!ELEMENT 汽车 (车牌,产地)>
<!ELEMENT 车牌 (#PCDATA)>
<!ELEMENT 产地 (#PCDATA)>
<!ATTLIST 车牌 出产时间 CDATA #REQUIRED>
Demo1.java:
package cn.itcast.xml.parser.dom;
import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
public class Demo1 {
public static void main(String[] args) throws Exception {
//创建DOM解析器工厂[抽象工厂设计模式]
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
//设置将空白字符忽略
factory.setIgnoringElementContentWhitespace(true);
//DOM解析器
DocumentBuilder parser = factory.newDocumentBuilder();
//加载XML文件,取得代表整个XML的document对象
Document document = parser.parse(new File("src/cn/itcast/xml/parser/dom/car.xml"));
//取得根元素
Element rootElement = document.getDocumentElement();
System.out.println("根元素名称:" + rootElement.getNodeName());
NodeList list = rootElement.getChildNodes();
System.out.println("共有" + list.getLength()+"辆汽车");
for(int i=0;i<list.getLength();i++){
Element element = (Element) list.item(i);
String band = element.getElementsByTagName("车牌").item(0).getFirstChild().getTextContent();
String place = element.getElementsByTagName("产地").item(0).getFirstChild().getTextContent();
System.out.println("车牌:" + band);
System.out.println("产地:" + place);
System.out.println("-------------");
}
}
}
Demo2.java:
package cn.itcast.xml.parser.dom;
import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.junit.Test;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.w3c.dom.Text;
public class Demo2 {
@Test
public void create() throws Exception{
Document document = getDocument();
Element rootElement = document.getDocumentElement();
//创建元素
Element carElement = document.createElement("汽车");
//创建文本
Text text = document.createTextNode("比亚迪");
carElement.appendChild(text);
//创建属性
carElement.setAttribute("id","aaaaaa");
rootElement.appendChild(carElement);
writeToFile(document);
}
@Test
public void update() throws Exception{
Document document = getDocument();
Element rootElement = document.getDocumentElement();
NodeList list = rootElement.getChildNodes();
Element carElement = (Element) list.item(3);//定位于第二辆汽车
carElement.getElementsByTagName("产地").item(0).setTextContent("广州");
writeToFile(document);
}
@Test
public void delete() throws Exception{
Document document = getDocument();
Element rootElement = document.getDocumentElement();
Element carElement = (Element) rootElement.getElementsByTagName("汽车").item(1);
carElement.getParentNode().removeChild(carElement);
writeToFile(document);
}
private Document getDocument() throws Exception {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setIgnoringElementContentWhitespace(true);
DocumentBuilder parser = factory.newDocumentBuilder();
Document document = parser.parse(new File("src/cn/itcast/xml/parser/dom/car.xml"));
return document;
}
private void writeToFile(Document document)throws Exception {
//创建XML输出工厂
TransformerFactory tf = TransformerFactory.newInstance();
//创建XML输出对象
Transformer t = tf.newTransformer();
//源对象
DOMSource source = new DOMSource(document);
//目标对象
StreamResult result = new StreamResult(new File("src/cn/itcast/xml/parser/dom/car.xml"));
//真正输出
t.transform(source,result);
}
}
*1,dom解析器
//DOM4J(SAXReader)
//SAX(SAXParser)
//DOM(DocumentBuilder)
DOM解析器常用API:
DocumentBuilderFactory.newInstance():创建DOM解析器工厂
factory.newDocumentBuilder():创建DOM解析器
factory.setIgnoringElementContentWhitespace(true):设置忽略空白字符[根元素]
parser.parse(new File("car.xml")):加载需要解析的XML文件
document.getDocumentElement():取得XML的根元素
rootElement.getNodeName():取得元素的名称
list.getLength():取得子元素的长度
list.item(i):取得第i个子元素,从0开始
element.getElementsByTagName("车牌"):取得该元素下以"车牌"命名的所有子元素的集合
element.getFirstChild():取得该元素下的第一个子元素
element.getTextContent():取得该元素中的字符串内容(不是对象)
document.createElement("汽车");创建新元素
Element.appendChild(carElement):向父元素填加子元素
document.createTextNode("比亚迪"):创建新文本
Element.appendChild(text):追加对象到父元素
Element.setAttribute("id","aaaaaa"):创建新属性和属性值
Element.getParentNode():取得该元素的直接父元素
Elemnet.removeChild(carElement):从父元素中删除子元素
2,web基本概念和安装配置tomcat服务器
JavaWeb(servlet/jsp),静态Web资源(html),动态Web资源(servlet/jsp),Web服务器
3,tomcat启动时常见错误及其处理方案
(1)没有配置JAVA_HOME
(2)端口号被其它网络程序占用
(3)在web服务器集群情况下,如何确定启动哪台
4,网站,web应用,web资源的关系,以及web应用的结构
*5,配置虚拟目录
tomcat/conf/server.xml,每次改动该文件后,需要重新启动tomcat。
<Context path="/虚拟目录名" docBase="真实web应用存储的位置"/>
如果将web应用直接放在webapps/目录下,tomcat服务器会自动将位于该目录下的web应用名映射虚拟目录(tomcat6)
如果在非webapps/目录下放置web应用,必须手工映射虚拟目录(tomcat6)
path=""
docBase=""
unpackWAR="true"当tomcat启动时,自动将位于webapps/目录中的WAR文件解压",默认为true
reloadable="true/false,tomcat服务器自动检查内容是否有更新,如果有,在true情况下,自动加载最重内容,无需手工
重启。在false情况下,必须手工重启"。[webapps/应用名/WEB-INF/lib或classes]
开发阶段最好使用true,在上线阶段最好使用false。
*6,配置虚拟网站
(1)浏览器访问服务器的原理
(2)在tomcat中配置多个虚拟网站
7,web架构
B/S C/S
浏览器/服务器 客户端/服务器
区别:
B/S
对显示要求不高
更新由服端完成
客户端和服务端间接通信,理论上支持无限客户端
客户端只要有浏览器,要求不高
服务器对安全要求可以分散,因此相对而且要求较低
服务器扩展性较高
相对速度较慢
C/S
对显示要求高
更新由客户端完成
客户端和服务端直接通信,理论上支持有限客户端
客户端要求较高
服务器对安全要求较高
服务器扩展较较低
相对速度较快
分享到:
相关推荐
Dom4j解析XML文档.doc Dom4j解析XML文档.doc Dom4j解析XML文档.doc Dom4j解析XML文档.doc
在Java平台中如何来使用DOM解析xml文件,
DOM解析XML文件例子DOM解析XML文件例子DOM解析XML文件例子
java学习笔记——使用DOM解析XML和使用SAX解析XML
dom4j是一种解析XML文档的开放源代码XML框架。本文介绍如何使用包含在dom4j中的解析器创建并修改XML文档。dom4j API包含一个解析XML文档的工具。本文中将使用这个解析器创建一个...DOM解析器不支持使用XPath选择节点。
Dom JDom 解析xml 文件 Dom JDom 解析xml 文件 Dom JDom 解析xml 文件 自己使用 最好不要下载
Java使用sax、dom、dom4j解析xml文档的代码,包含dom4j的jar包。
文档对象模型 节点和节点树 使用DOM加载XML文档 使用DOM访问、创建和修改节点
本文件是关于dom4j解析xml文档时需要的包的集合
用dom解析xml文件
Android使用Dom方式解析XML,虽然xml文件太大时不建议用dom方式解析,但是如果文件比较小,也不失为一种选择。项目中xml放在assets文件夹下,view绑定使用butterknife
android上使用DOM解析XML的简单示例。android4.0以上。
DOM解析XML文档DOM解析XML文档DOM解析XML文档
dom4j解析xml文件代码示例 dom4j解析xml文件代码示例 dom4j解析xml文件代码示例
包括android代码实例以及个人对Dom解析xml文件的总结文档。
使用dom4j 和本地dom 解析xml 文件
分别使用DOM和DOM4j解析XML文件,因为目前使用最广泛的是DOM4j所以只写了用DOM4j对XML进行增删改查。
以一个实例来说明DOM解析XML文件的方法与过程。
android为我们提供了多种解析方式,DOM解析,代码操作简单,一直为解析xml文件的一个不错的选择
1、xml文档解析 2、 dom4j解析xml 3、实现xml文件解析 xml字符串解析 xml MAP键值对解析 4、实现xml写入与生成文件