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包,如图:
随机推荐
- Linux环境常用命令
bash host #查看IP对应机器名 hostname #查看本机名 hostname –i #查看本机IP mssh ...
- Ubuntu 16.04系统上NFS的安装与使用
摘要:本文介绍了NFS服务器的安装过程.配置文件和常用命令行工具,以及NFS客户端上如何安装常用工具,介绍如何挂载共享目录,并通过实验进行验证. 一.服务器端: 1.1安装NFS服务: #执行以下命令 ...
- ubuntu mongodb报错:mongo - couldn't connect to server 127.0.0.1:27017
在进入mongo的时候,出现在下面错误信息.那如何解决呢? 标记一下,以便下次理碰的到时候,有个参考. warning: Failed to connect to 127.0.0.1:27017, r ...
- 计算机为什么要区别C盘,D盘,E盘等?
为什么要区分C盘,D盘,E盘,F盘? 1)各盘出现背景 在计算机刚诞生的年代,还没有硬盘,那时数据存储主要靠软盘.软盘驱动器按照顺序占据了A和B盘符的位置,后来随着硬盘的应用,就出现了C盘及以后的 ...
- script脚本中写不写$(document).ready(function() {});的区别
$(document).ready() 里的代码是在页面内容都加载完才执行的,如果把代码直接写到script标签里,当页面加载完这个script标签就会执行里边的代码了,此时如果你标签里执行的代码调用 ...
- Jersey前后端交互初体验
一 get请求 前端 基本的GET请求 $.ajax({ type : "get", url : "../rest/api/account/delete", d ...
- HDU 5441——Travel——————【并查集+二分查界限】
Travel Time Limit: 1500/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Su ...
- [CF 612E]Square Root of Permutation
A permutation of length n is an array containing each integer from 1 to n exactly once. For example, ...
- H-ui出现提交后没办法关闭
可以用sublime代替服务器来解决,或者是webstorm可以自行搭建服务器来解决当前的问题. sublime可以更改端口号 自己加上一个服务器 默认打开浏览器的 “快捷键”
- powerdesigner低版本打开高版本方式为只读导致无法保存PD只读read-only-mode
由于版本号不一致 打开PD文件后提示: 点击[确定]后打开,点击[取消]后打不开 但打开后修改完毕保存提示: 解决办法: pdm文件实际上是个xml文件,直接用文本编辑器打开该文件修改版本号即可 把根 ...