1,XML(EXtensible Markup language)可扩展标记语言
2,我们经常用到的编码方式:
(1)UTF-8:全球通用
(2)GB2312: 简体中文
(3)GBK:简体中文+繁体
(4)big5:繁体中文,台湾:繁体
(5)ISO-8859-1:不支持中文 数据库层面(latin 拉丁文)
3,注意:
一个XML 文档只能有一个跟节点
4,XML中的注释:
<!--快捷键:Ctrl+shift+/-->
5,Dom 解析(Document Object Model)文档对象模型
Xml文档代码如下:
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <books> <book id="第一"> <bookname>高级数学</bookname> <bookprice>86</bookprice> <bookauther>孔继师</bookauther> <bookversion>第二版本</bookversion> </book> <book id="第二"> <bookname>高级英语</bookname> <bookprice>78</bookprice> <bookauther>色日古楞</bookauther> <bookversion>第6版本</bookversion> </book> <book id="第三"> <bookname>焊接技术</bookname> <bookprice>45</bookprice> <bookauther>湖色冷</bookauther> <bookversion>第2版本</bookversion> </book> <book id="004"> <bookname>原子分离学</bookname> <bookprice>96</bookprice> <bookauther>张明曾</bookauther> <bookversion>最终版本</bookversion> </book> </books>
java Dom解析代码如下:
package cn.day2;
import java.io.IOException;
import javax.naming.spi.DirStateFactory.Result;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
public class Myxml {
public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException, TransformerException {
//1,创建解析器工厂
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
//2,创建解析器对象
DocumentBuilder builder = factory.newDocumentBuilder();
//3,指向硬件文档,形成Document对象
Document parse = builder.parse("src/books.xml");
//4,先指向NodeList集合对象,循环输出个个元素
NodeList list = parse.getElementsByTagName("book");
for (int i = 0; i <list.getLength(); i++) {
Element item = (Element)list.item(i);
String string = item.getAttribute("id");
String value1 = item.getElementsByTagName("bookname").item(0).getFirstChild().getNodeValue();
String value2 = item.getElementsByTagName("bookprice").item(0).getFirstChild().getNodeValue();
String value3 = item.getElementsByTagName("bookauther").item(0).getFirstChild().getNodeValue();
String value4 = item.getElementsByTagName("bookversion").item(0).getFirstChild().getNodeValue();
System.out.print(string+"\t"+value1+"\t"+value2+"\t"+value3+"\t"+value4);
System.out.println();
}
}
}
6,在Xml中增加新的子节点:
package cn.day2;
import java.io.IOException;
import javax.naming.spi.DirStateFactory.Result;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
public class Myxml {
public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException, TransformerException {
call();
//1,创建解析器工厂
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
//2,创建解析器对象
DocumentBuilder builder = factory.newDocumentBuilder();
//3,指向硬件文档,形成Document对象
Document parse = builder.parse("src/books.xml");
//4,在内存中构件一个游离的book对象
Element element = parse.createElement("book");
element.setAttribute("id", "004");
Element element2 = parse.createElement("bookname");
element2.setTextContent("原子分离学");
Element element3 = parse.createElement("bookprice");
element3.setTextContent("96");
Element element4 = parse.createElement("bookauther");
element4.setTextContent("张明曾");
Element element5 = parse.createElement("bookversion");
element5.setTextContent("最终版本");
//6,与book子节点绑定
element.appendChild(element2);
element.appendChild(element3);
element.appendChild(element4);
element.appendChild(element5);
//7,book与books跟节点绑定,作为他的子节点
//8,将游离的book对象隶属于books的子节点
parse.getElementsByTagName("books").item(0).appendChild(element);
//9,Document 对象parsen 写入硬盘上
//10,Transfer 传输到硬盘上
TransformerFactory factory2=TransformerFactory.newInstance();
Transformer transformer = factory2.newTransformer();
Source source=new DOMSource(parse);
StreamResult result=new StreamResult("src/books.xml");
transformer.transform(source, result);
System.out.println("成功");
}
private static void call() throws ParserConfigurationException, SAXException, IOException {
//1,创建解析器工厂
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
//2,创建解析器对象
DocumentBuilder builder = factory.newDocumentBuilder();
//3,指向硬件文档,形成Document对象
Document parse = builder.parse("src/books.xml");
//4,先指向NodeList集合对象,循环输出个个元素
NodeList list = parse.getElementsByTagName("book");
for (int i = 0; i <list.getLength(); i++) {
Element item = (Element)list.item(i);
String string = item.getAttribute("id");
String value1 = item.getElementsByTagName("bookname").item(0).getFirstChild().getNodeValue();
String value2 = item.getElementsByTagName("bookprice").item(0).getFirstChild().getNodeValue();
String value3 = item.getElementsByTagName("bookauther").item(0).getFirstChild().getNodeValue();
String value4 = item.getElementsByTagName("bookversion").item(0).getFirstChild().getNodeValue();
System.out.print(string+"\t"+value1+"\t"+value2+"\t"+value3+"\t"+value4);
System.out.println();
}
}
}