一、XML中的转义字符

>

<

<

&gt;


=


&quot;

,

&apos;

&

&amp;







二、语法注意事项

所有XML元素必须有结束标签

XML标签区分大小写

XML标签不能交叉嵌套

元素名称可以包含字母、数字和其他的字符

元素名称不能以数字和标点符号,开始

元素名称不能有空格








三、DOM解析XML方法


Document

整个XML文档



NodeList

getElementsByTagName(String Tag)


按文档顺序回返回某标记名称的所有元素集合

ElementcreateElement(String tagName)

创建指定标记名称的元素


Node

该文档树中的单个节点



NodeList getChildNodes()

获取该元素的所有子节点,返回节点集合


Element

XML文档中的一个元素


String getTagName()

获取元素名称




四、


l




四、操作实例(DOM解析XML)

1、Student.xml

<?xml version="1.0" encoding="utf-8"?>
<school>

<Student name="张华">
<Type name="15岁"/>
<Type name="三年级"/>
<Type name="88分"/>
</Student>

<Student name="王磊">
<Type name="13岁"/>
<Type name="一年级"/>
<Type name="66分"/>
</Student>

</school>

2.SelectXml.java

package J_XML;

import java.io.IOException;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

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 J_XML {

public static void main(String[] args) {
// 创建XML解析【工厂】对象

DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
try{

// 根据【工厂对象】创建【解析器对象】
DocumentBuilder builder=factory.newDocumentBuilder();
// 创建xml文档对象
Document document=builder.parse("src/J_XML/school.xml");
// 创建查询实例
NodeList brands=document.getElementsByTagName("Brand");
// 循环遍历所有的Student节点下的数据
for(int i=0;i<brands.getLength();i++){
// 取出Student每一个节点值
Node node=brands.item(i);
// 根据节点值取出父节点Name属性
Element eleBrand=(Element)node;
String BrandName=eleBrand.getAttribute("name");
System.out.println(BrandName);

//读取子节点

NodeList types=eleBrand.getChildNodes();
for(int j=0;j<types.getLength();j++){
Node typeNode=types.item(j);
// 判断子节点是否为元素,否则出错
if(typeNode.getNodeType()==Node.ELEMENT_NODE){
Element typeElement=(Element)typeNode;
String typeName=typeElement.getAttribute("name");
System.out.println("-----"+typeName);
}
}
}
}

catch(ParserConfigurationException e){
e.printStackTrace();
}
catch(SAXException e){
e.printStackTrace();
}
catch(IOException e){
e.printStackTrace();
}

}

}