精华内容
下载资源
问答
  • NULL 博文链接:https://bbsanwei.iteye.com/blog/266394
  • XML节点访问的路径表达式【相对路径】和【绝对路径】的匹配原则
  • XPath是一门在XML文档中查找信息的语言,下面介绍一下java使用xpathdom4j解析xml的示例,大家参考使用吧
  • 第六堂课2(配置文件及dom4j+xpath解析xml文件) 一、Java 中配置文件的三种配置位置及读取方式 1.XML和*.properties(属性文件)/ini 2.存放位置 1.src根目录下 Xxx.class.getResourceAsStream("/config.properties");...
    	第六堂课2(配置文件及dom4j+xpath解析xml文件)
    

    一、Java 中配置文件的三种配置位置及读取方式
    1.XML和*.properties(属性文件)/ini
    2.存放位置
    1.src根目录下
    Xxx.class.getResourceAsStream("/config.properties");
    理解:
    1.Xxx:类名
    2.getResourceAsStream:通过流得到资源
    3./config.properties:绝对路径(/表示上级目录)
    例如:
    在这里插入图片描述在这里插入图片描述
    2.与读取配置文件的类在同一包
    Xxx.class.getResourceAsStream(“config2.properties”);
    例如:
    在这里插入图片描述在这里插入图片描述
    3.WEB-INF(或其子目录下)
    ServletContext application=this.getServletContext();
    InputStream is=application.getResourceAsStream("/WEB-INF/config3.properties");

    注释:(需要下载插件propetid)下载后放置eclipse里面
    
    本知识点注1:
    	1.*.properties文件
    	2.key=value
    	3.#注释
    	4.Properties.load(is)
    

    二、XML的作用
    1.配置
    1..properties
    2.
    .xml
    3.*.ini
    2.数据交换
    1.xml(使用webservice技术,难度比较大)
    2.json(比较方便,键值对存储方式)

    三、dom4j+xpath解析xml文件
    1.DOM由节点组成(Node)
    1.元素节点(也就是标签)
    2.属性节点(属性名)
    3.文本节点(属性值)
    2.xpath是等同(相当于)数据库的select语句
    1.document.selectNodes(xpath):查一组数据
    2.document.selectSingleNode(xpath):查单个数据
    3.dom4j它是java语言专门提供的一个程序,用来解析XML文件的
    本知识点注:
    xpath中的特殊符合代表
    1./:定位
    2.@:属性
    3.[]:条件
    例如1(案例一及结果):找到所有节点
    代码(解析):
    // InputStream is=Demo2.class.getResourceAsStream("/config.xml"); //demo4j 读取 SAXReader reader=new SAXReader(); //开始读取 Document document=reader.read(is); //获取文档中的根目录 Element rootElement=document.getRootElement(); //获取到文本中的所有action List<Element> actionElementList=rootElement.selectNodes("/config/action"); //获取action下面的所有节点 遍历 for(Element actionElement:actionElementList) { //获取action下的属性节点和文本节点 String path=actionElement.attributeValue("path"); String type=actionElement.attributeValue("type"); System.out.println("path:"+path+",type:"+type); //获取action下的元素节点 List<Element> forwardElementList= actionElement.selectNodes("forward"); //遍历获取forward的属性节点及文本节点 for(Element forwardElement:forwardElementList) { String name=forwardElement.attributeValue("name"); String forwardPath=forwardElement.attributeValue("path"); String redirect=forwardElement.attributeValue("redirect"); System.out.println("name:"+name+",forwardPath:"+forwardPath+",redirect:"+redirect); } }
    结果:在这里插入图片描述
    例如2(案例二及结果):练习:找path=/loginAction 的action 下的name=success forward 的path值
    代码(解析): */
    */InputStream is=Demo2.class.getResourceAsStream("/config.xml"); //demo4j 读取 SAXReader reader=new SAXReader(); //开始读取 Document document=reader.read(is); //获取文档中的根目录 Element rootElement=document.getRootElement(); String path2="/config/action[@path='/loginAction']/forward[@name='success']/@path" ; Node node=rootElement.selectSingleNode(path2); System.out.println(node); System.out.println(node.getStringValue());
    结果:图片(两张)

    展开全文
  • java中使用Dom4jxPath解析xml文件

    千次阅读 2018-04-05 14:26:54
    XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。 XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。起初 XPath 的提出的初衷是将 其作为一个通用的、介于...

    一、基本概念
    1、XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。
    XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。
    XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。起初 XPath 的提出的初衷是将
    其作为一个通用的、介于XPointer与XSL间的语法模型。但是 XPath 很快的被开发者采用来当作
    小型查询语言。

    2、在JDK6API中文参考手册中,xPath下的一个evaluate()方法:
    Object evaluate(String expression,InputSource source,QName returnType)
    计算指定InputSource上下文的XPath表达式并返回指定类型的结果

    3、比如 xPath.evaluate(expression,source,returnType)对应于代码中的:
    xPath.evaluate(titleXpath, document, XPathConstants.STRING)

    4、text() 获取节点的文本内容函数

    二、books.xml文件
    这里写图片描述
    三、解析xml文件考察要点和思路
    这里写图片描述
    四、使用Dom4j的xPath解析xml文件实例
    package test06;

    import javax.xml.parsers.DocumentBuilder;

    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.ParserConfigurationException;
    import javax.xml.xpath.XPath;
    import javax.xml.xpath.XPathConstants;
    import javax.xml.xpath.XPathFactory;

    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    import org.w3c.dom.NodeList;

    public class MyXPathTest {
    /**
    * @使用Dom4j的xPath解析books.xml文件
    */
    public static void main(String[] args) {
    try {
    //创建解析工厂
    DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
    //创建解析器
    DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
    //通过解析器读取配置文件,生成一个Document[org.w3c.dom]对象树
    Document document = builder.parse(“conf/books.xml”);

            //创建XPath对象
            XPath xPath = XPathFactory.newInstance().newXPath();
    

    // 1.获取bookstore节点下book属性category值为web下的第二个title节点的文本内容
    //在books.xml文件里,单从category=’web’来看,只有两个符合,且title为
    //XQuery Kick Start 的排在这个符合集合中的第2种,所以说第二个title节点
    String titleXpath = “/bookstore/book[@category=’web’][2]/title/text()”;
    String titleValue = (String) xPath.evaluate(titleXpath, document, XPathConstants.STRING);
    System.out.println(titleValue);

    // 2.获取bookstore节点下book属性category值为web的titile属性为en的节点内容
    String titleLangXpath = “/bookstore/book[@category=’web’]/title[@lang=’en’]/text()”;
    String titleLangValue = (String) xPath.evaluate(titleLangXpath, document, XPathConstants.STRING);
    System.out.println(titleLangValue);

    // 3.获取bookstore下book属性category值为cooking的title的lang属性的值
    String titleLangAttrXpath = “/bookstore/book[@category=’cooking’]/title/@lang”;
    String titleLangAttrValue = (String) xPath.evaluate(titleLangAttrXpath, document, XPathConstants.STRING);
    System.out.println(titleLangAttrValue);

    // 4.获取bookstore节点下所有book的节点集合
    NodeList bookList = (NodeList) xPath.evaluate(“/bookstore/book”, document, XPathConstants.NODESET);
    //开始遍历bookList
    for(int i = 0; i < bookList.getLength(); i++){
    //item(i)为指定索引的节点
    Element bookElt = (Element) bookList.item(i);
    String titleValue01 = (String) xPath.evaluate(“title”, bookElt, XPathConstants.STRING);
    String authorValue = (String) xPath.evaluate(“author”, bookElt, XPathConstants.STRING);
    String year = (String) xPath.evaluate(“year”, bookElt, XPathConstants.STRING);
    String price = (String) xPath.evaluate(“price”, bookElt, XPathConstants.STRING);
    System.out.println(titleValue01 + ” ” + authorValue + ” ” + year + ” ” + price);
    System.out.println(“—————”);
    }
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    }
    输出:
    这里写图片描述
    五、分析小结
    1、Dom4j的xPath解析xml文件前期的准备步骤:
    (1)通过DocumentBuilderFactory获取解析工厂
    (2)通过解析工厂获取解析器
    (3)通过解析器的parse方法读取xml文件到Document对象,即创建Document对象
    (4)获取XPath对象(相当于通过XPath工厂获取XPath解析器)

    2、XPath使用路径表达式在xml文件中选取节点。
    常用路径表达式:拿books.xml为例

    bookstore :选取bookstore元素的所有子节点
    /bookstore :选取根元素bookstore /通常表示绝对路径
    bookstore/book :选取属于bookstore的子元素的所有book元素

    //book :选取所有book子元素,不管它们在文档中的位置
    这句话的意思是,就相当于在电脑磁盘里输入book字眼,查询整个磁盘中带有book的各种文件,
    不用考虑book的位置在哪里

    bookstore//book :选择属于bookstore元素的后代的所有的book元素,而不管它们位于bookstore
    之下的什么位置。
    这句话中,首先注意bookstore元素的后代,意思是在父节点bookstore前提下,所有的含有book元素的文档文件。相当于一个根文件夹bookstore,其文件夹下有多个子文件和文件夹,选择这些子文
    件和文件夹中的book元素。

    //@lang :选取名称为lang的所有属性。 意思是,这个属性名称为lang,它有自己的属性赋值。
    相等于int i; i=10;

    展开全文
  • dom4j+xpath解析xml文件

    2018-11-13 17:16:26
    1.XML建模  注意标红的字体 1.要先懂得DOM由节点组成 ...解析所需要的jar包:https://mvnrepository.com/search?q=dom4j 以及 https://mvnrepository.com/search?q=jaxen (所有的jar包都...

    1.XML建模 

    注意标红的字体

    1.要先懂得DOM由节点组成

           Node

             元素节点

             属性节点

             文本节点

    解析所需要的jar包:https://mvnrepository.com/search?q=dom4j 以及 https://mvnrepository.com/search?q=jaxen (所有的jar包都可以在那里下载,那是一个公认的仓库)

    1.2 创建.xml文件

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE config>
    <config>
    <action type="btest" path="/clogin.jsp">
    <forward path="/alogin.jsp" redirect="false" name="afailed"/>
    <forward path="/areader.jsp" redirect="true" name="asucees"/>
    </action>
    <action type="atest" path="/dlogin.jsp">
    <forward path="/blogd.jsp" redirect="false" name="bfailed"/>
    <forward path="/breader.jsp" redirect="true" name="bsucees"/>
    </action>
    </config>

    1.3 创建.xml文件每个节点对应的Bean(实体类)

    1.从底层的元素子节点开始创建实体类,从内到外的搭建,思路不会乱,环环相扣  --重点

    可以利用List集合或Map几个储存数据

    2.利用工厂模式和单例模式的特点,使XML文件中加载一次

    从上面的.xml文件可以分析出,主要由三个节点构成,分别是forward、action、config组成,创建对应的Bean

    1.3.1 创建forward实体类

    package com.entity;
    /**
     * Stdudent.xml中的forward节点实体类
     */
    import java.io.Serializable;
    
    public class ForwardNode implements Serializable{
    
    	private static final long serialVersionUID = 1L;
    	
    	public ForwardNode() {
    		super();
    	}
    	private String name;
    	private String path;
    	private boolean redirect;
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public String getPath() {
    		return path;
    	}
    	public void setPath(String path) {
    		this.path = path;
    	}
    	public boolean isRedirect() {
    		return redirect;
    	}
    	public void setRedirect(boolean redirect) {
    		this.redirect = redirect;
    	}
    	public void setRedirect(String redirect) {
    		this.redirect = Boolean.getBoolean(redirect);
    	}
    	
    	@Override
    	public String toString() {
    		return "Forward [name=" + name + ", path=" + path + ", redirect=" + redirect + "]";
    	}
    	
    	
    
    }
    

    1.3.2 创建对应的Action实体类

    package com.entity;
    import java.io.Serializable;
    import java.util.HashMap;
    import java.util.Map;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    /**
     * 实例化Student.xml中的action节点
     */
    public class ActionNode implements Serializable{
    
    	private static final long serialVersionUID = 1L;
    	
    	private String path;
    	private String type;
    	private Map<String, ForwardNode> forwardMaps = new HashMap<String, ForwardNode>();
    	
    	//用户验证XMl格式是否正确
    	/**
    	 * forwardNode.getName()验证name是否存在
    	 * @param forward
    	 */
    	public void putforwardMaps(ForwardNode forwardNode) {
    		//如果name已存在
    		if(forwardMaps.containsKey(forwardNode.getName())) {
    			//抛出异常,提示name已存在
    			throw new RuntimeException(""+forwardNode.getName()+"该name以存在");
    		}
    		//将forwardNode存放于Map(forwardMaps)集合中
    		forwardMaps.put(forwardNode.getName(), forwardNode);
    	}
    	/**
    	 * 通过键(name)查询Map值
    	 * @param name
    	 * @return
    	 */
    	public ForwardNode getforwardMaps(String name) {
    		//返回对象
    		return forwardMaps.get(name);
    	}
    	
    	
    	public ActionNode() {
    		super();
    	}
    	public String getPath() {
    		return path;
    	}
    	public void setPath(String path) {
    		this.path = path;
    	}
    	public String getType() {
    		return type;
    	}
    	public void setType(String type) {
    		this.type = type;
    	}
    	@Override
    	public String toString() {
    		return "Action [path=" + path + ", type=" + type + "]";
    	}
    }
    

    1.3.3 创建config对应的实体类

    package com.entity;
    import java.io.Serializable;
    import java.util.HashMap;
    import java.util.Map;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    /**
     * Student.xml中的config节点的实体类
     */
    public class ConfigNode implements Serializable{
    
    	private static final long serialVersionUID = 1L;
    	//得到action节点就=得到了下面的全部子节点
    	private Map<String, ActionNode> actionMaps = new HashMap<String,ActionNode>();
    	
    	//无参构造方法
    	public ConfigNode(){
    		
    	}
    	//验证格式是否正确--如果在实例化的时候验证的话要声明很多个。。如果在实体类中进行的话可以节省代码
    	public void putactionMaps(ActionNode actionNode) {
    		String redex = "^/.+$";  //写正则用于判断第一个是否是/
    		Pattern pattern = Pattern.compile(redex); //编辑正则
    		Matcher matcher = pattern.matcher(actionNode.getPath());  //使用编译后的正则匹配actionNode中的路径
    		boolean bool = matcher.find();  //匹配成功为true,失败为false
    		if(!bool) {   //如果失败
    			//如果不是以/开头的,抛出异常,程序终止
    			throw new RuntimeException("path["+actionNode.getPath()+"]中必须以/开头"); 
    			//如果actionMaps中已存在
    		}else if(actionMaps.containsKey(actionNode.getPath())) {
    			//抛出异常,提示已存在
    			throw new RuntimeException(""+actionNode.getPath()+"该路径以存在");
    		}
    		//将对象添加到Map(actionMaps)集合中
    		actionMaps.put(actionNode.getPath(), actionNode);
    	}
    	//通过键(name)得到actionMaps集合里面的内容
    	public ActionNode getactionMaps(String name) {
    		//返回对象
    		return actionMaps.get(name);
    	}
    	
    	
    
    }
    

    1.4 测试

    package com.test;
    import java.io.InputStream;
    import java.util.List;
    import org.dom4j.Document;
    import org.dom4j.Element;
    import org.dom4j.io.SAXReader;
    import com.entity.ActionNode;
    import com.entity.ConfigNode;
    import com.entity.ForwardNode;
    
    public class StudentFactory{// extends HttpServlet
    
    	/*
    	 *  单例模式
    	 *  1.私有化构造方法
    	 *  2.公开一个代理方法
    	 */ 
    	/*
    	 * 提取区
    	 */
    	private static List<Element> actionElements = null;
    	private static ActionNode  actionNode = new ActionNode();
    	private static InputStream is = null;
    	private static List<Element> configElements = null;
    	private static List<Element> forwardElements =  null;
    	private static String forwardName = null;
    	private static String forwardPath =  null;
    	private static String forwardRedirect = null;
    	private static String actionPath = null;
    	private static String actionType = null;
    	
    	
    	//私有化configNode类
    	private static ConfigNode configNode = null;
    	
    	//私有化构造方法
    	private StudentFactory() {
    		
    	}
    	//公开一个代理方法
    	public static ConfigNode createconfigNode(String filePath) {  
    		//如果configNode为null
    		if(configNode == null) {
    			//实例化configNode对象
    			configNode = new ConfigNode();
    			//调用初始化方法
    			init(filePath);
    		}
    		//返回configNode对象
    		return configNode;
    	}
    	//用于初始化的方法
    	public static void init(String filePath) {
    		try {
    		//获得输入流
    		is = StudentFactory.class.getResourceAsStream(filePath);
    		//实例化SAXReader,读取流,返回文档
    		Document document = new SAXReader().read(is);
    		//查询文档中config元素节点以下的所有子节点
    		configElements = document.selectNodes("config");
    			for (Element configElement : configElements) {
    				//通过configElement查询其子节点action
    				actionElements = configElement.selectNodes("action");
    				for (Element actionElement : actionElements) {
    					//获得actionElement元素节点中的属性path的文本元素
    					actionPath = actionElement.attribute("path").getText();
    					actionType = actionElement.attribute("type").getText();
    					//将得到的path文本元素添加到actionNode实体类中
    					actionNode.setPath(actionPath);
    					actionNode.setType(actionType);
    					//将得到的对象添加到configNode之中
    					configNode.putactionMaps(actionNode);
    					//通过actionElement节点查询forward子节点的内容
    					forwardElements = actionElement.selectNodes("forward");
    					for (Element forwardElement : forwardElements) {
    						forwardName = forwardElement.attributeValue("name");
    						forwardPath = forwardElement.attributeValue("path");
    						forwardRedirect = forwardElement.attributeValue("redirect");
    						ForwardNode forwardNode = new ForwardNode();
    						forwardNode.setName(forwardName);
    						forwardNode.setPath(forwardPath);
    						forwardNode.setRedirect(forwardRedirect);
    						actionNode.putforwardMaps(forwardNode);
    					}
    				}
    			}
    		} catch (Exception e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		
    	}
     	public static void main(String[] args) {
     		new StudentFactory().createconfigNode("Student.xml");
     		//通过键path查询值
     		//System.out.println(configNode.getactionMaps("/dlogin.jsp"));  
     		//通过键name查询值
     		//System.out.println(actionNode.getforwardMaps("bfailed"));
     		
    	}
    }
    

     

    希望能帮助到你,如有改进或者代码错误可以添加QQ细谈:304808680

    展开全文
  • Dom4J结合XPath解析XML

    2021-03-01 18:37:38
    介绍 XPath 使用路径表达式来选取HTML\XML 文档...步骤2:通过dom4j的SaxReader解析器对象,读xml文件,生成Document对象 步骤3: 利用Xpath提供的api,对XML文档中的标签或者属性进行解析操作。 document常用的api docum

    介绍

    XPath 使用路径表达式来选取HTML\XML 文档中的元素节点或属性节点。节点是通过沿着路径 (path) 来选取的。XPath在解析HTML\XML文档方面提供了独树一帜的路径思想.

    XPath使用步骤

    步骤1:导入jar包(dom4j和jaxen-1.1-beta-6.jar)

    步骤2:通过dom4j的SaxReader解析器对象,读xml文件,生成Document对象

    步骤3: 利用Xpath提供的api,对XML文档中的标签或者属性进行解析操作。

    document常用的api

    • document.selectSingleNode(String xpath); 获得一个节点(标签\元素)
    • document.selectNodes(String xpath); 获得多个节点(标签\元素)

    XPath语法(了解)

    • XPath表达式,就是用于选取HTML文档中节点的表达式字符串。
      获取XML文档节点元素一共有如下4种XPath语法方式:
      1. 绝对路径表达式方式 以/开头,从根标签开始的完整路径 例如: /元素/子元素/子子元素…
      2. 相对路径表达式方式 例如: 子元素/子子元素… 或者 ./子元素/子子元素…
      3. 全文搜索路径表达式方式 例如: //子元素//子子元素
      4. 谓语(条件筛选)方式 例如: //元素[@attr1=value]

    代码

    <?xml version="1.0" encoding="UTF-8"?>
    
    <天气预报>
        <北京 provide='' id='1'>
            <温度>
                <最高温度 level="A">18</最高温度>
                <最低温度>6</最低温度>
            </温度>
            <湿度>20%</湿度>
        </北京>
    
    
        <深圳>
            <温度>
                <最高温度 level="C">36</最高温度>
                <最低温度>24</最低温度>
            </温度>
            <湿度>50%</湿度>
        </深圳>
    
    	
    	 <广州>
    	 
    		<温度>
                <最高温度 level="C">32</最高温度>
                <最低温度>21</最低温度>
            </温度>
            <湿度>50%</湿度>
    		
    		<黄浦区>
    			<温度>
    				<最高温度 level="C">31</最高温度>
    				<最低温度>22</最低温度>
    			</温度>
    			<湿度>50%</湿度>
    		</黄浦区>
    		
    		<天河区>
    			<温度>
    				<最高温度 level="C">30</最高温度>
    				<最低温度>26</最低温度>
    			</温度>
    			<湿度>50%</湿度>
    		</天河区>
    
    
        </广州>
    </天气预报>
    
    public class Test {
        public static void main(String[] args) throws Exception {
            /*
                Dom4J结合XPath解析XML:
                      XPath使用步骤:
                        步骤1:导入jar包(dom4j和jaxen-1.1-beta-6.jar)
                        步骤2:通过dom4j的SaxReader解析器对象,获取Document对象
                        步骤3:利用Xpath提供的api,结合xpath的语法完成选取XML文档元素节点进行解析操作。
                     document\Element常用的api
                        - Node selectSingleNode(String xpath);   获得一个节点(标签,元素),传入符合XPATH语法的节点路径
                        - Node selectNodes(String xpath);      获得多个节点(标签,元素),传入符合XPATH语法的节点路径
                     XPATH路径语法:
                        1. 绝对路径表达式方式	     例如: /元素/子元素/子子元素...
                            以/开头的路径叫做是绝对路径,绝对路径要从根元素开始写
    
                        2. 相对路径表达式方式          例如: 子元素/子子元素..  或者 ./子元素/子子元素..
                            相对路径就是相对当前节点元素位置继续查找节点,不以/开头, ../ 表示上一个元素, ./表示当前元素
    
                        3. 全文搜索路径表达式方式  例如: //子元素//子子元素...   //子元素/子子元素...
                            代表不论中间有多少层,直接获取所有子元素中满足条件的元素
    
                        4. 谓语(条件筛选)方式      例如: //元素[@属性名=属性值]
                            根据条件过滤判断进行选取节点
             */
            // 1.创建解析器对象
            SAXReader sr = new SAXReader();
    
            // 2.读取xml文件,生成Document对象
            Document d = sr.read("day14\\tianqi.xml");
    
            // 绝对路径表达式方式: 获取广州天河区的湿度标签的文本
            // 1.获得湿度标签
            // Element继承Node
            Element e1 = (Element) d.selectSingleNode("/天气预报/广州/天河区/湿度");
    
            // 2.根据湿度标签获得文本
            System.out.println("e1:" + e1.getText());// 50%
    
            // 相对路径表达式方式: 相对于e1标签,获取深圳的湿度
            Element e2 = (Element)e1.selectSingleNode("../../../深圳/湿度");
            System.out.println("e2:" + e2.getText());
    
            // 全文搜索路径表达式方式: 所有的最高温度
            List<Element> list = d.selectNodes("//最高温度");
            for (Element e : list) {
                System.out.println(e.getName()+",文本:"+e.getText()+",属性:"+e.attributeValue("level"));
            }
            System.out.println("===================");
            // 谓语(条件筛选)方式 : 获取所有最高温度等级为C的标签
            List<Element> list1 = d.selectNodes("//最高温度[@level='C']");
            for (Element e : list1) {
                System.out.println(e.getName()+",文本:"+e.getText()+",属性:"+e.attributeValue("level"));
            }
        }
    }
    
    展开全文
  • 使用dom4jXPath解析XML

    2021-09-20 22:55:31
    DOM:要求解析器将整个XML文件全部加载到内存中,生成一个Document对象 优点:元素和元素之间保留结构,关系,可以针对元素进行增删改查操作 缺点:如果XML文件过大,可能会导致内存溢出。 SAX:是一种速度更快,...
  • 使用XPath解析XML的时候,在基本代码没有写错的情况下,使用selectSingleNode()方法获取xml的内容时返回null值,很有可能是因为xml设置了命名空间。 1)在没有命名空间的情况下,book.xml的文件(文件位于src/...
  • dom4j+Xpath解析XML文件

    2020-04-11 12:09:13
    J2EE-07 java中配置文件的配置位置及读取方式: 1.XML 2.properties 3.ini 存放位置: 1.src根目录下 2.与读取配置文件的类在同包 3.WEB-INF(或其子目录下) XML的作用: 1.配置(1.XML,2.properties ,...dom4j+xPa...
  • DOM4J使用XPath解析含有xmlns的xml文档

    千次阅读 2018-05-27 18:18:24
    }可以直接使用XPath解析没有任何问题public class Dom4jTest { public static void main(String[] args) throws Exception { run7(); } private static void run7() throws Exception { String uri =...
  • Dem4j集合XPath解析XML

    2021-09-07 20:46:41
    XML节点访问的路径表达式【相对路径】和【绝对路径】的匹配原则,Dem4j集合XPath解析XML
  • 很不错的东东哦,包括了dom4j-1.6.1.jar,用到XPath所需的jaxen-1.1.1.jar,以及你需要参考的dom4j的API文档、格式是chm的。
  • dom4jxpath解析xml

    2018-08-13 20:46:02
    Xpathxml文档中元素的唯一路径,通过该路径能找到一个或多个Element,与html的xpath有类似的存在意义。dom4j中可以通过getUniquePath()获取当前元素的Xpath。当文档数过深时,采用Xpath查找元素是最有效的方式。
  • NULL 博文链接:https://bbsanwei.iteye.com/blog/266392
  • Domxpath解析xml文件

    2018-12-10 16:30:26
    Mybatis在初始化过程中处理mybatis-config.xml文件以及映射文件时,采用DOM进行解析,并结合使用XPATH解析XML配置文件。如果对前端熟悉的伙伴,应该了解前端的DOM树,这里也一样,DOM会将整个xml文件加入内存中并...
  • XML解析 1,配置 *.propertes *.xml .ini 数据交互 xml webservice json 2. Java中配置文件的三种配置位置及读取方式 2.1 XML和.properties(属性文件)/ini 2.2 存放位置 2.2.1 src根目录下 Xxx.class....
  • 一、简介1、使用XPath可以快速精确定位指定的节点,以实现对XML文件的CRUD操作。2、去网上下载一个“XPath帮助文档”,以便于查看语法等详细信息,最好是那种有很多实例的那种。3、学习XPath语法。二、XPath语法1、...
  • -- dom4j xml处理--> <dependency> <groupId>org.dom4j</groupId> <artifactId>dom4j</artifactId> <version>2.1.3</version> </dependency> &...
  • 首先将Dom4jxpath的包引入,之后对如下所示的xml文件进行解析解析之后可以将相关信息导入数据库。分析该xml文件,最外层标签名为ACCESOS,可作为数据库表名。最内层有个标签,分别有相应的取值,最后一个标签...
  • dom4j解析XML成对象

    2021-03-06 17:16:00
    最近不太忙,发现现在服务之间的交互都是通过xml进行的,所以今天理了一下xml的两种解析方式。首先是最流行的dom4j解析。.../*** 解析XMl字符串数据,转化成对象,并返回* @param xml xml字符串...
  • NULL 博文链接:https://even2012.iteye.com/blog/1832068
  • 引入dom4j的相关依赖 两个必须添加 <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.6.1</version> </dependency> <...
  • Dom4jXpath解析xml(包括带有命名空间的xml) 直接上代码 maven <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.6.1</version&...
  • 简单用DOM4J结合XPATH解析XML

    千次阅读 2018-09-03 16:25:15
    由于DOM4J解析XML时只能一层一层解析,所以当XML文件层数过多时使用会很不方便,结合XPATH就可以直接获取到某个元素 使用dom4j支持xpath的操作的几种主要形式  第一种形式 /AAA/DDD/BBB: 表示一层一层的,AAA...
  • dom4jxpath必备jar包

    2017-10-22 16:20:32
    dom4jxpath必备jar包对xml文档进行解析的必须jar包!
  • 但是如果一个xml文件引入的是Schema约束,那么使用dom4jxpath解析的话,会出现问题。 books.xml <?xml version="1.0" encoding="utf-8" ?> <books xmlns="http://www.itcast.cn" xmlns:xsi=...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,977
精华内容 7,590
关键字:

dom4jxpath解析xml