精华内容
下载资源
问答
  • XML 解析XML 解析XML 解析XML 解析XML 解析XML 解析XML 解析
  • 解析xml解析xml解析xml解析xml解析xml解析xml解析xml解析xml解析xml解析xml解析xml解析xml解析xml解析xml
  • xml解析xml解析xml解析例子xml解析xml解析xml解析xml解析xml解析xml解析xml解析
  • XML解析

    千次阅读 2015-04-05 20:27:28
    ————XML解析 1.XML概述 XML:可扩展标记语言,作为一种数据格式,主要用于描述数据,存储数据 2.XML的语法 一个常见的XML数据一般由以下部分组成:文档声明、元素节点(Element)、属性(Attribute) ...

    ————XML解析

    1.XML概述

    XML:可扩展标记语言,作为一种数据格式,主要用于描述数据,存储数据


    2.XML的语法

    一个常见的XML数据一般由以下部分组成:文档声明、元素节点(Element)、属性(Attribute)


    3.XML解析

    XML解析:通过解析XML格式,提取XML所描述的数据

    XML主要有两种解析方式:DOMSAX

    DOM解析:读入整个XML文档并构建一个驻留内存的树结构(节点树),通过遍历树结构可以检索任意XML节点,读取它的属性和值

    SAX解析:是基于通知的模式,一边读取XML文档一边处理,不必等整个文档加载完之后才采取措施,一边读取节点,一边处理节点

    DOM解析适用于小数据量的XMLSAX解析适用于大数据量的XML


    4.利用第三方框架KissXML解析

    KissXML的解析方式是DOM解析,依赖于libxml框架、适合小量XML读取

    支持XPath查找节点、支持读取、写入XML

    使用KissXML必须导入libxml2.2dylib框架

    Header  Search  Paths中添加路径:/usr/include/libxml2

    (1)代码演示KissXMLXML



    (2)代码演示KissXML读取XML(方式一:遍历每个树节点;方式二:通过XPath语句,查找指定的节点)





    展开全文
  • xml 解析器,xml 解析xml 解析xml 解析xml 解析
  • XML解析DEMOXML解析DEMO

    2010-05-05 22:40:20
    XML解析DEMOXML解析DEMOXML解析DEMOXML解析DEMOXML解析DEMO
  • xml解析

    千次阅读 2019-06-10 20:24:47
    xpath解析能够将xml格式的串当作目录结构来进行查找 在上面代码上加上以下代码 List<Element> stuEles = doc.selectNodes("/students/student"); // for (Element stuEle : stuEles) { // if("s002".equals...

    读取指定位置下的资源文件(db.properties)

    1.读取同包下的资源文件
    文件:db.properties
    在这里插入图片描述
    读取同包下的资源文件代码块

    package com.chenkang;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.Properties;
    
    /**
     * 读取指定位置下的资源文件(db.properties)
     * 1.读取同包下的资源文件
     * @author 20190528
     *
     */
    public class propertiesDemo {
    	public static void main(String[] args) throws IOException {
    //		获取到同包下的资源文件,将其转换成流对象
    		InputStream in = propertiesDemo.class.getResourceAsStream("db.properties");
    //	    需要专门的工具类来讲流中的数据解析出来
    		Properties p=new Properties();
    		p.load(in);
    		System.out.println(p.getProperty("uname"));
    		System.out.println(p.getProperty("upass"));
    	}
    }
    
    

    输出结果
    在这里插入图片描述
    2.读取同包下的资源文件
    比如: Xxx.class.getResourceAsStream("/config.properties");
    运行结果和代码和上面的一样 运行结果也是一样 只需要在文件路径加上一个斜杠
    3…读取资源文件放在web-inf的资源文件 ()
    首先建一个Servlet

    package com.chenkang;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.Properties;
    
    import javax.servlet.ServletContext;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class ParseServlet extends HttpServlet {
    	@Override
    	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		doGet(req, resp);
    	}
    	@Override
    	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		ServletContext context = req.getServletContext();
    		InputStream in = context.getResourceAsStream("/WEB-INF/db.properties");
    		Properties p=new Properties();
    		p.load(in);
    		System.out.println(p.getProperty("uname"));
    		System.out.println(p.getProperty("upass"));
    	}
    }
    

    然后配置xml文件

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
      <display-name>xml</display-name>
      <servlet>
      <servlet-name>parseServlet</servlet-name>
      <servlet-class>com.chenkang.ParseServlet</servlet-class>
      </servlet>
      <servlet-mapping>
      <servlet-name>parseServlet</servlet-name>
      <url-pattern>/parseServlet</url-pattern>
      </servlet-mapping>
      
    </web-app>
    

    然后Tomcat运行
    运行结果
    在这里插入图片描述

    解析指定路径下的资源文件(student.xml)

    1.需要用到的架包
    在这里插入图片描述
    2.代码块

    package com.chenkang;
    import java.io.InputStream;
    import org.dom4j.Document;
    import org.dom4j.io.SAXReader;
    /**
     * 解析指定路径下的资源文件
     * @author 20190528
     *
     */
    public class XmlDemo {
    	public static void main(String[] args) throws Exception {
    		InputStream in = XmlDemo.class.getResourceAsStream("students.xml");
    		SAXReader saxReader=new SAXReader();
    		Document doc = saxReader.read(in);
    		System.out.println(doc.asXML());
    		
    	}
    	
    }
    
    

    3.运行结果
    在这里插入图片描述
    xpath解析
    xpath解析能够将xml格式的串当作目录结构来进行查找
    在上面代码上加上以下代码

    List<Element> stuEles = doc.selectNodes("/students/student");
    //		for (Element stuEle : stuEles) {
    //			if("s002".equals(stuEle.attributeValue("sid"))) {
    				System.out.println(stuEle.asXML());
    //				Element name = (Element) stuEle.selectSingleNode("name");
    //				System.out.println(name.asXML());
    //				System.out.println(name.getText());
    //			}
    //		}
    

    输出结果
    在这里插入图片描述
    1、获取所有action中的type的值
    2、获取第二个action中的type的值
    3、获取第二个action的所有forward的path
    4、获取第二个action的第二个forward的path
    代码:

    package com.chenkang;
    import java.io.InputStream;
    import java.util.List;
    import org.dom4j.Document;
    import org.dom4j.DocumentException;
    import org.dom4j.Element;
    import org.dom4j.Node;
    import org.dom4j.io.SAXReader;
    
    public class aa {
    	public static void main(String[] args) throws Exception {
    		InputStream in = XmlDemo.class.getResourceAsStream("config.xml");
    //		dom4j包下的SAXReader
    		SAXReader saxReader=new SAXReader();
    //		读取流中的数据    saxReader.read(in)返回一个Document(dom4j包下)
    		Document doc = saxReader.read(in);
    //		1.获取所有action中的type的值
    		List<Element> stuElems = doc.selectNodes("/config/action");
    		for (Element stuEle : stuElems) {
    			String type = stuEle.attributeValue("type");
    			System.out.println(type);
    		}
    		
    //		2.获取第二个action中的type的值
    		System.out.println("---------------------------");
    		List<Node> list = doc.selectNodes("/config/action[@path='/loginAction']");
    		for (Node node : list) {
    			Element elem = (Element) node;
    			String type = elem.attributeValue("type");
    			System.out.println(type);
    		}
    		
    //		3.获取第二个action的所有forward的path
    		System.out.println("---------------------------");
    		List<Node> list2 = doc.selectNodes("/config/action[@path='/loginAction']/forward");
    		for (Node node : list2) {
    			Element elem = (Element) node;
    			String path = elem.attributeValue("path");
    			System.out.println(path);
    		}
    		
    //		4.获取第二个action的第二个forward的path
    		System.out.println("---------------------------");
    		List<Node> list3 = doc.selectNodes("/config/action[@path='/loginAction']/forward[@name='success']");
    		for (Node node : list3) {
    			Element elem = (Element) node;
    			String path = elem.attributeValue("path");
    			System.out.println(path);
    		}
    
    	}
    
    }
    
    

    输出结果:
    在这里插入图片描述

    展开全文
  • XML解析技术研究XML解析技术研究XML解析技术研究XML解析技术研究XML解析技术研究
  • json xml 解析demo

    2017-09-14 18:15:25
    json xml 解析demojson xml 解析demojson xml 解析demojson xml 解析demojson xml 解析demojson xml 解析demo
  • XML解析工具

    2018-04-16 09:34:17
    读取和设置xml配置文件是最常用的操作,试用了几个C++的XML解析器,个人感觉TinyXML是使用起来最舒服的,因为它的API接口和Java的十分类似,面向对象性很好。 TinyXML是一个开源的解析XML的解析库,能够用于C++,...
  • xml 解析demo

    2011-05-27 23:08:13
    xml 解析demo xml 解析demo xml 解析demo xml 解析demoxml 解析demoxml 解析demoxml 解析demoxml 解析demo
  • XML解析工具类

    千次阅读 2019-08-20 14:11:53
    XML解析

    转一个XML工具类,方便下次用

    import java.io.ByteArrayInputStream;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    
    import org.apache.commons.lang3.StringUtils;
    import org.dom4j.Document;
    import org.dom4j.Element;
    import org.dom4j.io.SAXReader;
    import org.xml.sax.InputSource;
    
    /**
     * XML解析工具类
     * @author zhangsy
     * @date 2019年8月20日
     */
    public class XmlUtils {
    	
    	/**
    	 * 解析xml文本
    	 * @Title: parseXml
    	 * @data:2019年8月20日下午2:03:35
    	 * @author:zhangsy
    	 *
    	 * @param xml
    	 * @return
    	 */
    	public static Map<String, Object> parseXml(String xml) {
    		if (StringUtils.isBlank(xml))
    			return null;
    		try {
    			return parseXml(xml.getBytes("UTF-8"), "UTF-8");
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		return null;
    	}
    	
    	/**
    	 * 解析xml文本
    	 * @Title: parseXml
    	 * @data:2019年8月20日下午2:03:35
    	 * @author:zhangsy
    	 *
    	 * @param xml
    	 * @return
    	 */
    	public static Map<String, String> parseXmlToStrMap(String xml) {
    		if (StringUtils.isBlank(xml))
    			return null;
    		Map<String, String> result = new HashMap<String, String>();
    		try {
    			Map<String, Object> map = parseXml(xml);
    			for (String key : map.keySet()) {
    				Object value = map.get(key);
    				result.put(key, String.valueOf(value));
    			}
    			return result;
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		return null;
    	}
    
    	/**
    	 * 解析xml数据
    	 * @Title: parseXml
    	 * @data:2019年8月20日下午2:03:28
    	 * @author:zhangsy
    	 *
    	 * @param xmlBytes
    	 * @param charset
    	 * @return
    	 */
    	@SuppressWarnings("unchecked")
    	public static Map<String, Object> parseXml(byte[] xmlBytes, String charset) {
    		SAXReader reader = new SAXReader(false);
    		InputSource source = new InputSource(new ByteArrayInputStream(xmlBytes));
    		source.setEncoding(charset);
    		Map<String, Object> map = new HashMap<String, Object>();
    		try {
    			Document doc = reader.read(source);
    			Iterator<Element> iter = doc.getRootElement().elementIterator();
    			while (iter.hasNext()) {
    				Element e = iter.next();
    				if (!e.elementIterator().hasNext()) {
    					map.put(e.getName(), e.getTextTrim());
    					continue;
    				}
    				Iterator<Element> iterator = e.elementIterator();
    				Map<String, String> param = new HashMap<String, String>();
    				while (iterator.hasNext()) {
    					Element el = iterator.next();
    					param.put(el.getName(), el.getTextTrim());
    				}
    				map.put(e.getName(), param);
    			}
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		return map;
    	}
    
    }
    

    pom文件加入:

    		<!-- https://mvnrepository.com/artifact/dom4j/dom4j -->
    		<dependency>
    		    <groupId>dom4j</groupId>
    		    <artifactId>dom4j</artifactId>
    		    <version>1.6.1</version>
    		</dependency>   
    

    转载自 : https://blog.csdn.net/hanys_csdn/article/details/80333146
    感谢分享

    展开全文
  • XML解析封装

    2011-11-11 14:45:57
    XML解析封装XML解析封装XML解析封装XML解析封装
  • \MTK自带的XML解析.doc\MTK自带的XML解析.doc \MTK自带的XML解析.doc\MTK自带的XML解析.doc \MTK自带的XML解析.doc\MTK自带的XML解析.doc
  • C++ 使用TinyXML解析XML文件,简单清晰,仅供参考。读取和设置xml配置文件是最常用的操作,TinyXML是一个开源的解析XML的C++解析库
  • XML解析

    2007-09-03 09:09:02
    XML解析库,XML 解析 XML解析
  • Scala xml解析全解教程

    2018-05-08 17:00:48
    scala xml parse Scala xml解析全解教程 学习用scala处理解析xml
  • XML解析之DOM解析详解

    万次阅读 多人点赞 2018-06-05 16:39:34
    Xml解析有两种方式,一种是DOM解析,另一种是SAX解析,两种操作的方式如图。       二、DOM解析   基于DOM解析的xml分析器是将其转换为一个对象模型的集合,用树这种数据结构对信息进行储存。通过DOM...

    一、概念

    xml文件多用于信息的描述,所以在得到一个xml文档之后按照xml中的元素取出对应的信息就是xml的解析。Xml解析有两种方式,一种是DOM解析,另一种是SAX解析,两种操作的方式如图。

     

     

     

    二、DOM解析

     

    基于DOM解析的xml分析器是将其转换为一个对象模型的集合,用树这种数据结构对信息进行储存。通过DOM接口,应用程序可以在任何时候访问xml文档中的任何一部分数据,因此这种利用DOM接口访问的方式也被称为随机访问。

    这种方式也有缺陷,因为DOM分析器将整个xml文件转换为了树存放在内存中,当文件结构较大或者数据较复杂的时候,这种方式对内存的要求就比较高,且对于结构复杂的树进行遍历也是一种非常耗时的操作。不过DOM所采用的树结构与xml存储信息的方式相吻合,同时其随机访问还可利用,所以DOM接口还是具有广泛的使用价值。

    这里我们举个栗子来说明xml转换为树的数据结构。

    <?xml version="1.0" encoding="GBK"?>
    <address>
    	<linkman>
    		<name>Van_DarkHolme</name>
    		<email>van_darkholme@163.com</email>
    	</linkman>
    	<linkman>
    		<name>Bili</name>
    		<email>Bili@163.com</email>
    	</linkman>
    </address>
    

    将该xml转换为树的结构为:

     

    DOM解析中有以下4个核心操作接口

    Document:此接口代表了整个xml文档,表示为整个DOM的根,即为该树的入口,通过该接口可以访问xml中所有元素的内容。其常用方法如下。

    (注:上述图中虽未画出,但是name和email的属性(van_darkhole,van_holme@163.com)也分别为一个节点)

                          Document常用方法

    public NodeList getElementByTagName(String tagname)

    取得指定节点名称的NodeList

    Public Element createElement(String tagName) throws DOMException

    创建一个指定名称的节点

    Public Text createTextNode(String data) throws DOMException

    创建一个文本内容节点

    Element createElement(String tagName) throws DOMException

    创建一个节点元素

    Public Attr createAttribute(String name)throws DOMException

    创建一个属性

    Node:此接口在整个DOM树中有着举足轻重的地位,DOM操作的核心接口都继承于Node(Document、Element、Attr)。在DOM树中,每一个Node接口代表了一个DOM树节点

     

    Node接口常用方法

    Node appendChilid(Node newChild) throws DOMException

    在当前节点下增加下一个新节点

    Public NodeList getChildNodes()

    取得本节点下的全部子节点

    Public Node getFirstChild()

    取得该节点下的第一个子节点

    Public Node getLastChild()

    取得本节点下的最后一个子节点

    Public boolean hasChildNodes()

    判断是否还有其他节点

    String getNodeValue()throws DOMException

    获取节点内容

    NodeList:此接口表示一个点的集合,一般用于有序关系的一组节点。

                                                                            NodeList常用方法

    Public int getLength()

    取得NodeList中节点的个数

    Public Node item(int index)

    根据索引取得节点对象

     

    NamedNodeMap:此接口表示一组节点和其唯一名称对应的一一关系,主要用于节点属性的表示

     

    除了以上四个核心接口外,如果一个程序需要进行DOM解析操作,则需要按照如下步骤进行:

    1. 建立DocumentBuilderFactor,用于获得DocumentBuilder对象:

    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

    2. 建立DocumentBuidler:

    DocumentBuilder builder = factory.newDocumentBuilder();

    3. 建立Document对象,获取树的入口:

    Document doc = builder.parse(“xml文件的相对路径或者绝对路径”);

    4. 建立NodeList:

    NodeList n1 = doc.getElementByTagName(“读取节点”);

    5. 进行xml信息获取

     

    下面则根据上面的xml文件进行解析

     

    public class DOMDemo01 {
    	
    	public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException{
    		//建立DocumentBuilderFactor,用于获得DocumentBuilder对象:
    		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    		//2.建立DocumentBuidler:
    		DocumentBuilder builder = factory.newDocumentBuilder();
    		//3.建立Document对象,获取树的入口:
    		Document doc = builder.parse("src//dom_demo_02.xml");
    		//4.建立NodeList:
    		NodeList node = doc.getElementsByTagName("linkman");
    		//5.进行xml信息获取
    		for(int i=0;i<node.getLength();i++){
    			Element e = (Element)node.item(i);
    			System.out.println("姓名:"+
    					e.getElementsByTagName("name").item(0).getFirstChild().getNodeValue());
    			System.out.println("邮箱:"+
    					e.getElementsByTagName("email").item(0).getFirstChild().getNodeValue());
    		}	
    		
    	}
    }

    运行结果为:

     

     

    上述代码则从第四处开始分析:

    通过doc.getElementByTagName(“linkman”)我们获得了一个NodeList,上述xml文件中包含了两个linkman的节点,所以这里NodeList中包含了两个Node(都是linkman节点),然后通过循环的方法来获取xml文件中的信息。

    Element e = (Element)node.item(i)获得了linkman节点,即e这里指向了linkman

     

     

     

    e.getElementTagName(“name”).item(0).getFirstChild().getNodeValue();

    getElementTagName(“name”);获得了该linkman下的所有name节点(其实就1个);

    Item(0);取第一个Name节点(就一个);

    getFristChild();获取name节点下的文本节点,即内容van所在的节点(上面已经提到过,文本内容也是一个单独的节点,Document方法列表中的createTextNode()就是创建文本节点);

    getNodeValue()获得文本节点的值:van_darkholme;

     

     

     

    展开全文
  • C# XML解析方式

    2013-06-06 13:59:48
    C# XML解析方式
  • XML解析之SAX方式解析xml文件

    万次阅读 2017-11-02 12:24:33
    SAX解析方式会逐行地去扫描XML文档,当遇到标签时会触发解析处理器,采用事件处理的方式解析XML (Simple API for XML) ,不是官方标准,但它是 XML 社区事实上的标准,几乎所有的 XML 解析器都支持它。优点是:在...
  • 纯C XML解析

    2013-12-06 10:23:26
    XML解析,纯C代码。 很多开源XML太复杂,功能也太全面,此附件内只有xml解析功能。
  • tinyXml解析XML文件

    千次阅读 2019-06-30 22:03:11
    TinyXML解析一个XML文档,并从该文档构建可读取、修改和保存的文档对象模型(DOM)。 XML代表“可扩展标记语言”,它允许您创建您自己的文档标记。HTML在标记方面做得很好用于浏览器的文档,XML允许您定义任何类型...
  • XML解析

    千次阅读 2016-10-08 23:38:39
    相关阅读 XML约束 Xml 格式数据的生成和解析 XML解析器 一、操作XML文档概述1、如何操作XML文档XML文档也是数据的一种,对数据的...2、XML解析技术XML解析方式分为两种:DOM(Document Object Model)和SAX(Simple A
  • 大话XML解析

    千次阅读 2016-06-01 13:41:43
    之前我写过一篇关于xml解析的文章:http://blog.csdn.net/sdksdk0/article/details/50749326,写的都是一些很基础的知识。今天这篇文章主要是进一步加深对xml的理解了使用,写的应该会更注重细节的内容。主要内容有...
  • 复杂xml解析成对象

    2016-09-27 15:20:13
    利用jdom解析复杂xml到bean中: 1.依赖的jar:jdom-1.1.jar,commons-beanutils.1.8.3.jar,commons-logging-1.1.1.jar ...用模板将xml解析 具体可以打断点运行主类:/xml_parse/src/com/vhl/main/StartMain.java,观察
  • 最高效的XML解析方式-----Simple 简化 XML 解析 XML数据解析 ----是将数据文档解析成不同的格式。因为不同平台(软件)在做数据传递或数据文档共享的时候,同一数据文档可能在不同平台的 显示格式要求不同,这就出现...
  • XML解析与XML拼接

    千次阅读 2015-01-05 09:23:58
    2015年了。 1、XML解析 这边是用的dom4j方式解析。 2、XML拼接 将拼接成XML字符串
  • SOAP xml解析

    热门讨论 2014-03-26 10:50:43
    SOAP解析,与一般的xml解析不一样,他中间存在报文,解析到就出错了,也就解析不下去,这里举了一个列子,(网络上找了好久都没找到我想要的列子,最后我自己根据例子做了整理做出来的),把数据组合成集合。...
  • XML解析(一),SAX解析XML

    万次阅读 2015-12-05 09:38:59
    一、概述 SAX,全称Simple API for XML,是一种以事件驱动的XMl API,是XML解析的一种新的替代方法,解析XML常用的还有DOC解析,PULL解析(Android特有),SAX与DOC不同的是它边扫描边解析,自顶向下依次解析,由于...
  • Android xml解析

    千次阅读 2016-07-17 18:58:53
    主要对于Android XmlResourceParser解析器,点击按钮将books.xml解析显示在EditText上。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 690,573
精华内容 276,229
关键字:

XML解析