利用Jaxp解析xml文件

XML文件示例:

<?xml version="1.0" encoding="UTF-8" ?>
<书架>
	<书>
			<书名 name="***">语文</书名>
			<作者>李白</作者>
			<售价>100.0</售价>
	</书>
			<书名>数学</书名>
			<作者>杜甫</作者>
			<售价>101.0</售价>
	<书>
	</书>
</书架>

解析实现:

/*
*利用dom方式对xml进行解析
*/
//获取某一标签
public void read()
{
	DocumentBuildFactory factory = DocumentBuildFacetory.newInstance();
	DocumentBuilder builder = factory.newDocumentBuilder();
	Documnet document = builder.parse("xmlPath");
	
	NodeList list = document.getElementByTagName("标签名");
	Node node = list.item(1);
	String content = node.getTextContent();	
}

//遍历xml文档所有节点、标签
public void read1()
{
	 DocumentBuild factory = DocumentBuildFactory.newInstance();
	 DocumentBuilder builder = factory.newDocumentBuilder();
	 Document document = builder.parse("xmlPath");
	 
	 Node root = document.getElementByTagName("根标签名称").item(0);
	 list(root);
}


//递归遍历,会将xml所有的节点遍历为DO
//如果只需要获取xml的所有标签,添加判断语句,对节点进行判断:if(node instanceof Element)
public void list(Node node)
{
	/*if(node instanceof Element)
	{
		System.out.prinln(node.getNodeName());
		}*/
		
	NodeList list = node.getChildNodes();
	for(int i=0;i<list.getLength();i++)
	{
		Node child = list.item(i);
		list(child);
	}
}


//得到xml文档中标签属性的值
public void read1()
{
	 DocumentBuild factory = DocumentBuildFactory.newInstance();
	 DocumentBuilder builder = factory.newDocumentBuilder();
	 Document document = builder.parse("xmlPath");
	 Element tagname = (Element)Document.getElementByTagName("书名").item(0);	//进行了强转
	 tagname.getAttribute("name");																						//对上述xml解析示例,得到书名“name”属性值“***”
}

利用Jaxp解析方法现在不常用,是一种最基本的解析方法!

posted @ 2016-12-19 10:18  一介草民李八千  阅读(116)  评论(0)    收藏  举报