JavaEE--学习笔记---04XML与TomCat

1.导入dom4j 2.2.1

dom4j官方下载地址

并使用buildpath方式 config buildpath/add libary添加到java工程里

如果报如下错误,则需要改变会java9以前的版本(项目使用java8的jar来创建):

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.dom4j.io.SAXContentHandler (file:/E:/MyEclipseWorkspace/EX016XML_Parser/dom4j-1.6.1.jar) to method com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser$LocatorProxy.getEncoding()
WARNING: Please consider reporting this to the maintainers of org.dom4j.io.SAXContentHandler
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

2.使用dom4j解析xml文档

java记录一下使用DOM4J-2.1.1解析XML文件的基本方法

1、创建xml文档stus.xml

<?xml version="1.0" encoding="UTF-8"?>
<Stus>
	<stu>
		<name>张三</name>
		<age>18</age>
		<address>深圳</address>
	</stu>
	<stu>
		<name>李四</name>
		<age>28</age>
		<address>北京</address>
	</stu>
	<stu>
		<name>王五</name>
		<age>22</age>
		<address>湖南</address>
	</stu>
</Stus>

2、导入dom4j并创建MainTest

package com.fengray.test;

import java.io.File;
import java.util.Iterator;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class MainTest {

	public static void main(String[] args) {
		//1.创建sax对象
		SAXReader reader=new SAXReader();
		try {
			//2.指定解析的xml源
			Document document=reader.read(new File("src/xml/stus.xml"));
			//3.得到元素
			Element rootElement=document.getRootElement();
			//4.得到根元素下面的子元素
			System.out.println(rootElement.element("stu").element("address").getText()) ;//得到深圳
			//5.遍历所有的子元素中的值			
			List<Element> elements=rootElement.elements();
			Iterator<Element> eleIterator=elements.iterator();
			while (eleIterator.hasNext()) {
				Element element=eleIterator.next();
				String name=element.element("name").getText();
				String age=element.element("age").getText();
				String address=element.element("address").getText();				
				System.out.println(name+"  "+age+"  "+address);
			}
			
		} catch (DocumentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

}

结果是:

深圳
张三 18 深圳
李四 28 北京
王五 22 湖南

3.使用dom4j的Xpath解析xml文档

针对嵌套较多的xml文档结构,可以使用xpath进行解析
1、添加jaxen包
参考文章
2、java文件:

package com.fengray.test;

import java.io.File;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;

public class MainTest {

	public static void main(String[] args) {
		//1.创建sax对象
		SAXReader reader=new SAXReader();
		try {
			//2.指定解析的xml源
			Document document=reader.read(new File("src/xml/stus.xml"));
			//3.得到元素
			Element rootElement=document.getRootElement();
			//4.导入jaxen包,获得Xpath支持
			System.out.println("--------获取一个节点的name元素---------");
			Element nameElement=(Element) rootElement.selectSingleNode("//name");//获取一个节点name元素
			System.out.println(nameElement.getText()); 
			System.out.println("--------获取多个节点的name元素---------");
			List <Element>list=rootElement.selectNodes("//name");//Xpath语法,获得多个节点
			for (Element element : list) {
				System.out.println(element.getText());
			}
		} catch (DocumentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

}

结果是:
--------获取一个节点的name元素---------
张三
--------获取多个节点的name元素---------
张三
李四
王五

4.给Tomcat配置虚拟路径

1.直接在tomcat的webapps的root目录下存放网站源文件

2. 配置虚拟路径(当同时配置多个网站的时候,这种配置是最好用的)

使用localhost:8080 打开tomcat首页, 在左侧找到tomcat的文档入口, 点击进去后, 在左侧接着找到 Context入口,点击进入。

http://localhost:8080/docs/config/context.html
  1. 在conf/server.xml 找到host元素节点。

  2. 加入以下内容。

<Context docBase="D:\xml02" path="/a"></Context>// a目录是希望在地址栏显示的目录,但实际并不存在该目录
	docBase :  项目的路径地址 如: D:\xml02\person.xml
	path : 对应的虚拟路径 一定要以/打头。
	对应的访问方式为: http://localhost:8080/a/person.xml
  1. 在浏览器地址栏上输入: http://localhost:8080/a/person.xml

多网站配置时:


3. 使用xml文件配置虚拟路径

  1. 在tomcat/conf/catalina/localhost/ 文件夹下新建一个xml文件,名字可以自己定义。 person.xml

  2. 在这个文件里面写入以下内容

    <?xml version='1.0' encoding='utf-8'?>


    类似的:

  3. 在浏览器上面访问

    http://localhost:8080/person/xml的名字即可
    类似的:
    http://localhost:8080/fengray/

4.给Eclipse配置Tomcat
  1. 在server里面 右键新建一个服务器, 选择到apache分类, 找到对应的tomcat版本, 接着一步一步配置即可。

  2. 配置完毕后, 在server 里面, 右键刚才的服务器,然后open , 找到上面的Server Location , 选择中间的 Use Tomcat installation…

  3. 创建web工程, 在WebContent下定义html文件, 右键工程, run as server

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值