【JAVA】XML操作合集

一、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();
		}

	}

}

猜你喜欢

转载自blog.csdn.net/dxnn520/article/details/107316602
今日推荐