`

SAXReader解析XML

    博客分类:
  • java
阅读更多

总结:

Document document=new SAXReader.reader(“xml文路径/文件名xxx.xml”);//得到Document对象

Element root = document.getRootElement()//获得根节点

Iterator iterator=root.elementIterator(); //从根节点遍历子节点

Iterator iterator=Element.elementIterator(); //再从子节点在遍历其子节点

对节点访问其属性用:Attribute leaderAttr =Element. attribute(“xxx”);

对节点访问其某个属性leaderAttr的名称:leaderAttr.getName();
对节点访问其某个属性leaderAttr的值:leaderAttr.getValue()

对节点访问其名称:Element.getName();

对节点访问其文本:Element. getText();

 

 

//SAXReader解析XML

public List<SMS> parseXML(String content) throws Exception{

/**

 * <?xml version="1.0" encoding="UTF-8"?>

<mo>

<mescode>0</mescode>

<msgs>

<msg>

<mob>111111111</mob>

<content>生生世世</content>

</msg>

</msgs>

</mo>

 */

SAXReader reader = new SAXReader();

Document document = reader.read(new StringReader(content));

if(document == null) {

log.error("解析XML失败:"+content);

return null;

}

Element e = (Element) document.selectSingleNode("/mo/mescode");

if(e == null) {

log.error("解析mescode节点失败:"+content);

return null;

}

int result = Integer.parseInt(e.getText());

switch(result){

/**

 *  0 成功

1 失败

2      错误

 

 */

case 0:

List<SMS> messages = new ArrayList<SMS>();

List<Node> nodes = document.selectNodes("/mo/msgs/msg");

if(nodes == null){

log.error("解析msg节点失败:"+content);

return null;

}

for(Node node : nodes){

SMS message = new SMS();

e = (Element) node.selectSingleNode("mob");

message.setMobliePhone(e.getText());

e = (Element)node.selectSingleNode("content");

message.setContnet(URLDecoder.decode(e.getText(), encoding));

messages.add(message);

}

return messages;

case 1:

log.error("失败");

break;

case 2:

log.error("错误");

break;

}

return null;

}

 

//构造XML

 

StringBuilder builder = new StringBuilder();

builder.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");

builder.append("<mt>");

builder.append(String.format("<userid>%s</userid>", USERID));

builder.append(String.format("<pwd>%s</pwd>", PWD));

builder.append("<msgs>");

if(messages != null){

for(SMS message : messages){

builder.append("<msg>");

builder.append(String.format("<mob>%s</mob>", s%));

builder.append(String.format("<content>%s</content>", URLEncoder.encode(s%,"UTF-8")));

builder.append("</msg>");

}

}

builder.append("</msgs>");

builder.append("</mt>");

分享到:
评论

相关推荐

    用SAXReader解析xml文档

    **SAXReader解析XML的基本步骤:** 1. 引入DOM4J库:在项目中引入DOM4J的依赖,通常通过Maven或Gradle添加对应的依赖项。 2. 创建SAXReader对象:`SAXReader reader = new SAXReader();` 3. 设置解析器属性:可以...

    saxreader 解析 XML

    总之,Android开发中使用SAXReader解析XML是一种高效且节省内存的方法,尤其适用于处理大文件。通过自定义的事件处理器,我们可以灵活地解析和处理XML文档中的各种元素和属性。同时,为了提高效率,从服务器下载XML...

    解析XML特殊字符方法

    有两种主要方法来解析XML中的特殊字符: **方法一:使用实体引用** 实体引用是XML中最常见的处理特殊字符的方式。当你需要在XML文档中插入特殊字符时,可以使用对应的实体引用。比如,如果你想在文本中包含一个...

    解析XML文件(字符串)的两种方法

    #### 一、使用SAXReader解析XML **SAXReader**是DOM4J库中的一个类,用于读取XML文档。它支持多种输入源,包括文件、URL和字符流等,并且可以通过不同的配置来控制解析过程中的行为。 ##### 示例代码分析 ```java...

    Xml.zip_JAVA读取xml_XML读取_java_saxreader

    2. 使用SAXReader解析XML文件,并处理事件。这里我们创建一个ContentHandler的子类,重写其方法来处理解析过程中的事件: ```java import org.xml.sax.Attributes; import org.xml.sax.ContentHandler; import org....

    Dom4j(SaxReader )开发详解

    下面我们将详细探讨如何使用SaxReader解析XML文件: 1. 引入Dom4j库:在Java项目中,可以通过Maven或Gradle等构建工具引入Dom4j依赖。例如,在Maven的pom.xml文件中添加: ```xml &lt;groupId&gt;dom4j &lt;artifactId&gt;...

    详细解析SAXReader解析器的作用与用法中的使用的xml文件

    详细解析SAXReader解析器的作用与用法中的使用的xml文件

    sax解析xml

    3. **解析XML文档**:有了SAXParser和ContentHandler后,我们可以通过调用SAXParser的`parse()`方法来解析XML文档。`parse()`方法接受两个参数:输入源(InputStream或File)和ContentHandler。 ```java File xml...

    java xml和map互转

    `xmlToMap`方法首先使用SAXReader解析XML字符串,然后递归地遍历XML文档的元素,将它们转换为Map结构。 `mapToXml`方法则将Map转换成XML字符串: ```java import org.dom4j.Document; import org.dom4j....

    DOM4J解析XML时DTD路径问题

    ### DOM4J解析XML时DTD路径问题 在处理XML文件时,经常需要用到DOM4J这样的库来进行解析。当XML文件包含DTD(Document Type Definition)声明时,DOM4J默认会尝试从指定的URL加载DTD文件来进行验证。这通常是为了...

    dom4j解析xml字符串

    // 读取并解析XML文档 // SAXReader就是一个管道,用一个流的方式,把xml文件读出来 // // SAXReader reader = new SAXReader(); //User.hbm.xml表示你要解析的xml文档 // Document document = reader.read...

    java解析XML文件

    Java解析XML文件是Java开发中常见的一项任务,XML(eXtensible Markup Language)作为一种结构化数据存储格式,被广泛用于数据交换、配置文件和Web服务等场景。本篇文章将详细探讨Java如何利用DOM4J库来解析XML文件...

    dom4j解析

    以下是一个使用SAXReader解析XML的示例: ```java import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.io.SAXReader; public class XMLParseTest { public static void main...

    java解析xml并导入数据库(dom4j).doc

    Java 解析 XML 并导入数据库(DOM4J) Java 解析 XML 并导入数据库是指使用 Java 语言将 XML 文件解析并将其内容导入到数据库中。下面是使用 DOM4J 库来实现此功能的相关知识点: 一、XML 文件解析 XML...

    4种解析xml文件 实例

    本文将深入探讨Java平台下解析XML的四种主流方法:DOM、SAX、DOM4J和JDOM。 1. **DOM(Document Object Model)解析XML** DOM是一种树形结构,它将整个XML文档加载到内存中,形成一个完整的对象模型。这种解析方式...

    Java解析xml所需jar包

    为了在Java中解析XML文档,开发者通常需要引入特定的库或框架。在这个场景中,提到的两个关键库是`dom4j`和`jdom`,它们都是Java解析XML的重要工具。 **dom4j** dom4j是一个非常灵活且功能丰富的Java XML API,它...

    DOM4J 解析XML

    **DOM4J解析XML** DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活、高效且功能丰富的API,使得XML的读取、创建、修改和查询变得简单易行。DOM4J的主要特点包括对XPath的支持、事件驱动的解析、以及与...

    读取XML文件的四种方法

    使用DOM方法读取XML文件,需要创建DocumentBuilderFactory对象,获取DocumentBuilder对象,然后解析XML文件得到Document对象。最后,使用Document对象的getElementsByTagName方法获取指定标签的节点列表,并遍历节点...

Global site tag (gtag.js) - Google Analytics