一、XML文件
ML 指可扩展标记语言(EXtensible Markup Language)
XML 是一种标记语言,很类似 HTML
XML 的设计宗旨是传输存储数据,而非显示数据
XML 标签没有被预定义。您需要自行定义标签。
XML 被设计为具有自我描述性。
XML 是 W3C 的推荐标准
XML 与 HTML 的主要差异
XML 不是 HTML 的替代。
XML 和 HTML 为不同的目的而设计:
XML 被设计为传输和存储数据,其焦点是数据的内容。
HTML 被设计用来显示数据,其焦点是数据的外观。
HTML 旨在显示信息,而 XML 旨在传输信息。
XML里的标记对都叫node 节点
element 元素
常用的节点类型就三种
getNodeName() getNodeValue
Element element name null
Attr 属性名称 属性值
Text #text 节点值
二、使用
第一种:DOM解析xml的步骤:
准备工作:
1.// 获得解析器工厂对象
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
2. // 通过解析器工厂对象新建一个文档解析器
DocumentBuilder builder = factory.newDocumentBuilder();
3.// 通过解析器解析xml文件,在内存中形成文档树(节点树)
// dom 适合于解析 xml 文件小,简单
Document doc = builder.parse(fileName);
4.// 根据标签名获得所有的 book 节点
NodeList nodeList = doc.getElementsByTagName(“book”);
解析过程:
5.遍历节点集合 获取每个节点元素
for (int i = 0; i < nodeList.getLength(); i++) {
Element element = (Element) nodeList.item(i);
获取节点的属性 element.getAttribute(属性名)
6.获取子节点的值
属性名称 = doc.getElementsByTagName(“title”).item(i).getFirstChild().getNodeValue();
第二种:.DOM创建XML文件步骤:
原理:
创建TransformerFactory类的对象
通过TransformerFactory创建Transformer对象
使用Transformer对象的transform()方法将DOM树转换为XML文件。
(该方法有两个参数,第一个参数为源数据,需要创建DOMSource对象并将Document加载到其中
;第二个参数为目的文件,即要生成的XML文件,需要创建StreamResult对象并指定目的文件)
1.// 获得解析器工厂对象
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
2. // 通过解析器工厂对象新建一个文档解析器
DocumentBuilder builder = factory.newDocumentBuilder();
3.// 通过解析器创建一个新的文档对象
Document doc = builder.newDocument();
4.//设置xml版本号
doc.setXmlVersion(“1.0”);
5.增加节点/子节点 以及值
6.将节点添加到document
doc.appendChild(element);
7 //创建Xml文件转换器
TransformerFactory tranf = TransformerFactory.newInstance();
Transformer trans = tranf.newTransformer();
8//给文件转换器设置字符编码
trans.setOutputProperty(“encoding”, “utf-8”);
9//定义转换器输入对象
DOMSource source = new DOMSource(doc);
10//定义转换器输出对象
Result target = new StreamResult(目标XML文件);
trans.transform(source, target);
注意:standalone = no 表示dtd和schema的相关描述资料的提示 一般设置为true