XML中DOM解析器

import java.io.File;
import java.io.IOException;

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

import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

/**
 * 文件对象模型(Document Object Model,DOM)解析器将读入的XML文档转换成树结构
 * 
 * @author hphua
 * 
 */
public class Xml_First {

	public static void main(String[] args) {
		
		//从DocumentBuilderFactory中得到DocumentBuilder对象
		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
		try {
			
			DocumentBuilder builder = factory.newDocumentBuilder();
			//创建一个文件
			File f = new File("d:\\web.xml");
			
			try {
				//从文件中读取文档
				org.w3c.dom.Document doc = builder.parse(f);
				//调用getDocumentElement()方法分析文档的内容,将返回根元素
				Element root = doc.getDocumentElement();
				System.out.println("元素名称:"+root.getTagName());
				System.out.println(root.getNodeName()); /** output:configuration */
				System.out.println("属性名为:xmlns:xsi的值:"+root.getAttribute("xmlns:xsi"));
				//得到该元素的子元素
				NodeList child = root.getChildNodes();
				
				
				Node firstChild = root.getFirstChild();
				System.out.println("firstChild="+firstChild.getNodeName());
				
				Node lastChild = root.getLastChild();
				System.out.println("lastChild="+lastChild.getNodeName());
/*				
				Node nextSibling = root.getNextSibling();
				System.out.println("nextSibling="+nextSibling);*/
				
				System.out.println("子元素个数:"+child.getLength());
				
				//枚举所有子元素
				Node chi =null;
				for (int i = 0; i < child.getLength(); i++) {
					chi = child.item(i);

					//此节点的绝对基 URI;如果实现不能获得绝对 URI,则为 null。
					System.out.println(chi.getBaseURI());
					//此属性返回此节点及其后代的文本内容。
					String text = chi.getTextContent();
					System.out.println("text="+text);
					//返回此节点限定名称的本地部分
					System.out.println("getLocalName="+chi.getLocalName());
					//此节点的名称,取决于其类型
					System.out.println(chi.getNodeName());
					//包含此节点的属性的 NamedNodeMap(如果它是 Element);否则为 null。
					System.out.println("getAttributes="+chi.getAttributes());
				}
				System.out.println("//------------------------------------------------------//");
				/**
				 * 获得根节点的所有属性值与名称.
				 */
				NamedNodeMap attributes = root.getAttributes();
				for(int i = 0;i<attributes.getLength();i++){
					Node attribute = attributes.item(i);
					String name =attribute.getNodeName();
					String value =attribute.getNodeValue();
					System.out.println("NodeName="+name+",NodeValue="+value);
				}

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

	}
}



web.xml代码如下:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
				xsi:noNamespaceSchemaLocation="config.xsd">

	<font chr="hphua">
		<name color="blue">hpjianhua</name>
		<size>30</size>
	</font>
				
</configuration>

你可能感兴趣的:(xml,Web,F#)