java xml解析核心代码

DOM解析

            //使用工厂类创建对象
		DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
		//使用工厂类的对象创建文档对象,该对象映射操作xml文件
		DocumentBuilder docum = dbf.newDocumentBuilder();	
		Document doc = docum.parse(Thread.currentThread().getContextClassLoader().getResourceAsStream("MyXML/Student.xml"));
		//获取文档中所有的student节点,返回的是节点的集合
		NodeList nodelist = doc.getElementsByTagName("student");

DOM4J解析

                SAXReader sax = new SAXReader();
		//	使用read()读取文档
		Document doc = sax.read(Thread.currentThread().getContextClassLoader().getResourceAsStream("MyXML/Student.xml"));
		Element root = doc.getRootElement();//获取根节点
		List<Element> nodes = root.elements();//获取根节点下的子节点,返回List集合

JDOM解析

                //加载文档
		SAXBuilder sax = new SAXBuilder();
		Document doc = sax.build(Thread.currentThread().getContextClassLoader().getResourceAsStream("MyXML/Student.xml"));		
		//直接获取文档的根节点
		Element root = doc.getRootElement();
		List<Element> children = root.getChildren();//获取跟节点下的子节点。返回List集合
		List<Students> list = new ArrayList<Students>(); 

SAX解析

                SAXParserFactory sax = SAXParserFactory.newInstance();
		SAXParser parse = sax.newSAXParser();//创建解析对象
		MyDefaultHandler hand = new MyDefaultHandler();
		parse.parse(Thread.currentThread().getContextClassLoader().getResourceAsStream("MyXML/Student.xml"),hand);
		

XPath解析

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();//实例化DocumentBuilderFactory对象
		DocumentBuilder bulider = dbf.newDocumentBuilder();
		Document doc = bulider.parse(Thread.currentThread().getContextClassLoader().getResourceAsStream("MyXML/Student.xml"));
		
		XPathFactory factory = XPathFactory.newInstance();//实例化XPathFactory对象
		XPath xpath = factory.newXPath();
		
		XPathExpression compile = xpath.compile("//student");//选取student节点
		NodeList nodes = (NodeList)compile.evaluate(doc, XPathConstants.NODESET);//获取student节点的所有节点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值