java基础 xml 使用dom4j解析 xml文件 servlet根据pattern 找到class
package com.swift.kaoshi; import java.io.File;
import java.util.List;
import java.util.Scanner; import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.junit.Test; /*
<servlets>
<servlet>
<servlet-name>servlet1</servlet-name>
<servlet-class>cn.itheima.servlets.MyServlet1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>servlet1</servlet-name>
<url-pattern>/s1</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>servlet2</servlet-name>
<servlet-class>cn.itheima.servlets.MyServlet2</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>servlet2</servlet-name>
<url-pattern>/s2</url-pattern>
</servlet-mapping>
</servlets> 二、编写程序,请按以下要求解析XML文件:
1. 接收用户输入一个字符串,例如:”/s1”,要求程序可以通过检索<servlet-mapping>元素下的<url-pattern>元素进匹配,匹配后获取同级的<servlet-name>元素的值;
通过这个值再检索<servlet>元素下的<servlet-name>元素的值进行匹配,匹配成功后,获取同级下的<url-pattern>的值,并打印<url-pattern>的值。<servlet-class>
例如:用户输入:/s1,控制台打印:cn.itheima.servlets.MyServlet1
用户输入:/s2,控制台打印:cn.itheima.servlets.MyServlet2*/ //dom4j SAX遍历 public class Demo_Dom4j { public static void main(String[] args) throws Exception { // SAXReader reader = new SAXReader();
// Document document = reader.read(new File("web.xml"));
// String servlet_name = null;
//
// System.out.println("请输入一个路径字符串:");
// Scanner scan = new Scanner(System.in);
// String str = scan.nextLine();
//
// Element root = document.getRootElement();
// List<Element> mappings = root.elements("servlet-mapping");
// for (Element element : mappings) {
// System.out.println(element);
// List<Element> urls = element.elements("url-pattern");
// for (Element url : urls) {
// System.out.println(url);
// String text=url.getText();
// System.out.println(text);
// if(text.equals(str)) {
// Element name=element.element("servlet-name");
// servlet_name=name.getText();
// System.out.println(servlet_name);
// }
// }
// }
// System.out.println("===========================================================================");
// //准备检索servlet
// List<Element> servlets=root.elements("servlet");
// for(Element servlet:servlets) {
// System.out.println(servlet);
// List<Element> servlet_names=servlet.elements("servlet-name");
// for(Element servlet_n:servlet_names) {
// String servlet_name1=servlet_n.getText();
// System.out.println(servlet_name1);
// if(servlet_name1.equals(servlet_name)) {
// Element servlet_class=servlet.element("servlet-class");
// System.out.println("需要查找的类的名称是: "+servlet_class.getText());
// }
// }
// } } @Test
public void show() throws Exception { SAXReader reader = new SAXReader();
Document document = reader.read(new File("web.xml"));
String servlet_name = null; System.out.println("请输入一个路径字符串:");
Scanner scan = new Scanner(System.in);
String str = scan.nextLine(); Element root = document.getRootElement();
List<Element> mappings = root.elements("servlet-mapping");
for (Element element : mappings) {
System.out.println(element);
List<Element> urls = element.elements("url-pattern");
for (Element url : urls) {
System.out.println(url);
String text=url.getText();
System.out.println(text);
if(text.equals(str)) {
Element name=element.element("servlet-name");
servlet_name=name.getText();
System.out.println(servlet_name);
}
}
}
System.out.println("===========================================================================");
//准备检索servlet
List<Element> servlets=root.elements("servlet");
for(Element servlet:servlets) {
System.out.println(servlet);
List<Element> servlet_names=servlet.elements("servlet-name");
for(Element servlet_n:servlet_names) {
String servlet_name1=servlet_n.getText();
System.out.println(servlet_name1);
if(servlet_name1.equals(servlet_name)) {
Element servlet_class=servlet.element("servlet-class");
System.out.println("需要查找的类的名称是: "+servlet_class.getText());
}
}
} }
}
属性值的解析
package com.swift.kaoshi; import java.io.File;
import java.util.List; import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader; /*有product.xml,请使用dom4j解析出所有的商品信息,并打印商品的所有属性值:
product.xml的内容如下:
<?xml version = “1.0” encoding=”UTF-8”?>
<products>
<product id = “p001”>
<name>华为X80</name>
<color>白</color>
<price>2800</price>
</product>
<product id = “p002”>
<name>华为X88</name>
<color>黑</color>
<price>2900</price>
</product>
</products> 操作步骤描述
1.在项目目录下,按照已给出的XML内容创建product.xml文件
2.使用核心类SaxReader加载xml文档获得Document
3.通过Document对象获得文档的根元素
4.获得所有product元素
5.获得元素属性的属性值及元素下的子元素的所有文本内容*/ public class Dom4j_Attribute { public static void main(String[] args) throws Exception { SAXReader sax = new SAXReader();
Document document = sax.read(new File("product.xml"));
Element root = document.getRootElement();
List<Element> products = root.elements("product");
for (Element product : products) {
Attribute attri = product.attribute("id");
System.out.println("product "+attri.getName()+"的属性值是 "+attri.getData());
List<Element> dazahui=product.elements();
for(Element za:dazahui) {
String name=za.getName();
String text=za.getText();
System.out.println(name+" 元素的值为 "+text);
}
} } }
java基础 xml 使用dom4j解析 xml文件 servlet根据pattern 找到class的更多相关文章
- 【java项目实战】dom4j解析xml文件,连接Oracle数据库
简单介绍 dom4j是由dom4j.org出品的一个开源XML解析包.这句话太官方.我们还是看一下官方给出的解释.例如以下图: dom4j是一个易于使用的.开源的,用于解析XML,XPath和XSLT ...
- 【JAVA使用XPath、DOM4J解析XML文件,实现对XML文件的CRUD操作】
一.简介 1.使用XPath可以快速精确定位指定的节点,以实现对XML文件的CRUD操作. 2.去网上下载一个“XPath帮助文档”,以便于查看语法等详细信息,最好是那种有很多实例的那种. 3.学习X ...
- XML(四)dom4j解析XML
使用dom4j须要导入jar包 jar包下载地址:http://pan.baidu.com/s/1o65jWRw 将dom4j-1.6.1.jar包导入Eclipse book2.xml <?x ...
- java使用dom4j解析xml文件
关于xml的知识,及作用什么的就不说了,直接解释如何使用dom4j解析.假如有如下xml: dom4j解析xml其实很简单,只要你有点java基础,知道xml文件.结合下面的xml文件和java代码, ...
- java中采用dom4j解析xml文件
一.前言 在最近的开发中用到了dom4j来解析xml文件,以前听说过来解析xml文件的几种标准方式:但是从来的没有应用过来,所以可以在google中搜索dmo4j解析xml文件的方式,学习一下dom4 ...
- Java进阶(二十七)使用Dom4j解析XML文件
使用Dom4j解析XML文件 写在前面的话 由于论文实验要求,需要实现操作XML文档,为此想到了dom4j这个工具,使用之后深感受益.在此分享给大家,以此共勉. 注:本文转载自http://blog. ...
- 在java项目中怎样利用Dom4j解析XML文件获取数据
在曾经的学习.net时常常会遇到利用配置文件来解决项目中一些须要常常变换的数据.比方数据库的连接字符串儿等.这个时候在读取配置文件的时候.我们一般会用到一个雷configuration,通过这个类来进 ...
- 转:在java中使用dom4j解析xml
JAVA 使用Dom4j 解析XML Java DOM4J Parser - Parse XML Document Dom4j下载及使用Dom4j读写XML简介 在java中使用dom4j解析xml ...
- 用DOM4J解析XML文件案例
用DOM4J解析XML文件案例,由于DOM4J不像JAXP属于JAVASE里,所以如果要使用DOM4J,则必须额外引入jar包,如图:
随机推荐
- HDU 4512——吉哥系列故事——完美队形I——————【LCIS应用】
吉哥系列故事——完美队形I Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Tot ...
- 【ubuntu】安装输入法
1.安装系统自带的输入法 出现问题1:Requires installation of untrusted packages 输入代码更新组件 sudo apt-get update &&am ...
- 【Ionic】---$ionicLoading ion-spinner SVG旋转加载的动画图标
ionic 加载动作 $ionicLoading $ionicLoading 是 ionic 默认的一个加载交互效果.里面的内容也是可以在模板里面修改. 用法 angular.module('Load ...
- hibernate课程 初探一对多映射2-4 Mysql创建数据库表
1 本节内容: mysql 数据库建表(班级表和学生表) Create table grade(gid varchar(32) primary key, gname varchar(32) not n ...
- GET和POST区别(转)
作者:silence链接:https://www.zhihu.com/question/28586791/answer/153556269来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业 ...
- 使用min-content实现容器宽度自适应于内部元素
前言 设计师可以分为如下两类: 先做好设计,然后将内容放入静态框架中 优秀的设计师充分考虑内容的各个方面及其上下文,并创建适合于内容的设计 HTML原生就是响应式的(HTML内容在视口内流式的分布). ...
- php-5.2.14 编译参数,成功的
./configure --prefix=/usr/local/php --with-config-file-path=/usr/bin --with-mysql=/usr/local/mysql - ...
- 用Python爬虫对豆瓣《敦刻尔克》影评进行词云展示
最近很想看的一个电影,去知乎上看一下评论,刚好在学Python爬虫,就做个小实例. 代码基于第三方修改 原文链接 http://python.jobbole.com/88325/#comment-9 ...
- 关于 supersocket 不能通过Bootstrap 启动
App.config内容 <configSections> <section name="superSocket" type="SuperSocke ...
- JavaScript(一) 对象基础
1.定义类或对象 1.1 混合的构造函数/原型方法 用构造函数定义对象的所有非函数属性,类似于Java的构造方法.用原型方法定义对象的函数属性(方法).这种方法是使用比较广泛的定义类或对象的方法. / ...