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的更多相关文章

  1. 【java项目实战】dom4j解析xml文件,连接Oracle数据库

    简单介绍 dom4j是由dom4j.org出品的一个开源XML解析包.这句话太官方.我们还是看一下官方给出的解释.例如以下图: dom4j是一个易于使用的.开源的,用于解析XML,XPath和XSLT ...

  2. 【JAVA使用XPath、DOM4J解析XML文件,实现对XML文件的CRUD操作】

    一.简介 1.使用XPath可以快速精确定位指定的节点,以实现对XML文件的CRUD操作. 2.去网上下载一个“XPath帮助文档”,以便于查看语法等详细信息,最好是那种有很多实例的那种. 3.学习X ...

  3. XML(四)dom4j解析XML

    使用dom4j须要导入jar包 jar包下载地址:http://pan.baidu.com/s/1o65jWRw 将dom4j-1.6.1.jar包导入Eclipse book2.xml <?x ...

  4. java使用dom4j解析xml文件

    关于xml的知识,及作用什么的就不说了,直接解释如何使用dom4j解析.假如有如下xml: dom4j解析xml其实很简单,只要你有点java基础,知道xml文件.结合下面的xml文件和java代码, ...

  5. java中采用dom4j解析xml文件

    一.前言 在最近的开发中用到了dom4j来解析xml文件,以前听说过来解析xml文件的几种标准方式:但是从来的没有应用过来,所以可以在google中搜索dmo4j解析xml文件的方式,学习一下dom4 ...

  6. Java进阶(二十七)使用Dom4j解析XML文件

    使用Dom4j解析XML文件 写在前面的话 由于论文实验要求,需要实现操作XML文档,为此想到了dom4j这个工具,使用之后深感受益.在此分享给大家,以此共勉. 注:本文转载自http://blog. ...

  7. 在java项目中怎样利用Dom4j解析XML文件获取数据

    在曾经的学习.net时常常会遇到利用配置文件来解决项目中一些须要常常变换的数据.比方数据库的连接字符串儿等.这个时候在读取配置文件的时候.我们一般会用到一个雷configuration,通过这个类来进 ...

  8. 转:在java中使用dom4j解析xml

    JAVA 使用Dom4j 解析XML Java DOM4J Parser - Parse XML Document Dom4j下载及使用Dom4j读写XML简介 在java中使用dom4j解析xml ...

  9. 用DOM4J解析XML文件案例

    用DOM4J解析XML文件案例,由于DOM4J不像JAXP属于JAVASE里,所以如果要使用DOM4J,则必须额外引入jar包,如图:

随机推荐

  1. Unity String 转换成 Vector3

  2. 数据库mysql--基础命令

    客户端 一.登录和退出 1.登录 mysql -h server-ip -u usename -p 回车,然后会提示输入密码 2.退出:"quit;" | "exit;& ...

  3. Murano Weekly Meeting 2015.09.15

    Meeting time: 2015.September.15th 1:00~2:00 Chairperson:  Serg Melikyan, PTL from Mirantis Meeting s ...

  4. Spark集群安装MySQL环境

    1.修改yum源 鉴于用国外的Yum源,速度比较慢,所以想到将国外的yum源改为国内的Yum源,这里选择使用比较多的阿里云源.具体修改方法可以参考此连接 我们先新建一个新的文件用来存放Yum源: [k ...

  5. 案例51-crm练习新增客户使用数据字典和ajax

    1 案例效果 2 使用ajax加载数据字典下拉选-后台部分 1 domain部分-BaseDict package www.test.domain; public class BaseDict { / ...

  6. 项目中使用的spring 注解说明

    以前在项目中spring 的依赖注入使用 xml 配置,现在使用 注解(Annotation) 来实现配置. 1声明bean 1.1实例 有类: public class MyBean{ //do s ...

  7. This blog Test the Open Live Writer

    1. We print HELLOWORLD when we first learned to code, I want to Write this blog to test the software ...

  8. vue-devtools插件安装

    1.git clone https://github.com/vuejs/vue-devtools.git 2.此时表示vue-devtools包下载完成,进入到对应的目录下cd vue-devtoo ...

  9. css float布局--右侧上部固定下部自适应大小

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. --disable-column-names,--skip-column-names,--column-names=0

    --disable-column-names,--skip-column-names,--column-names=0