一、XML中的转义字符
> | < |
< | > |
= | " |
, | ' |
& | & |
二、语法注意事项
所有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();
}
}
}