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. (转)企业级NFS网络文件共享服务

    企业级NFS网络文件共享服务 原文:http://www.cnblogs.com/chensiqiqi/archive/2017/03/10/6530859.html --本教学笔记是本人学习和工作生 ...

  2. 打开/关闭网卡无线WIFI模块

    @echo off title ------(Please run as Administrators)Please select------ :begin echo ---------------- ...

  3. 021-动态生成验证码jsp代码模板

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  4. AndroidStudio3.0的安装和配置笔记

    开发Android项目要搭建开发环境.可以选择使用Eclipse安装ADT插件来开发安卓项目,也可以使用谷歌的官方IDE——AndroidStudio3.0. AndroidStudio3.0安装的具 ...

  5. Homebrew 配置

    使用ruby脚本安装完成homebrew之后, 需要配置三个源以及添加一些环境变量 1. export HOMEBREW_NO_AUTO_UPDATE=true # 不自动检查更新 2. cd $(b ...

  6. 错误处理(Operation Result)方法

    自己开发的公众号,可以领取淘宝内部优惠券 问题 现在有一个FileStorageService类,继承自IStorageService,具体实现如下 public interface IStorage ...

  7. Ubuntu18.10安装及优化

    最近机器学习很火,想来学习下,先来搭建一个学习平台. https://www.ubuntu.com 下载最新版本的系统,我这里是 18.10 桌面版. 然后进行分区,我这里在vm只创建了 80G的硬盘 ...

  8. the wait queue

    using System; using System.Collections.Concurrent; using System.Threading; namespace Base { public c ...

  9. Spring课程 Spring入门篇 1-2Spring简介

    课程链接: 1 Spring是什么? 2 为什么是Spring 3 Spring的作用: 4 适用范围 1 Spring是什么? a 开源框架 b 轻量级的控制反转(Ioc)和面向切面编程(AOP)的 ...

  10. 从零开始的全栈工程师——js篇(js的异步)

    js中的异步 Javascript语言的执行环境是"单线程"(single thread,就是指一次只能完成一件任务.如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任 ...