NanoXML组件解析xml简单例子

简介:

NanoXML组件解析xml简单例子

 

 

 package com.aspboy.base.action.util;

import java.util.Iterator;
import java.util.Vector;

import net.n3.nanoxml.IXMLElement;
import net.n3.nanoxml.IXMLParser;
import net.n3.nanoxml.IXMLReader;
import net.n3.nanoxml.StdXMLReader;
import net.n3.nanoxml.XMLParserFactory;

public class NanoXmlTest {

 public static void main(String[] args) {

  // 解析
  //String body = "<m a='1' b='2'><a id='vvv'>111111</a><b>222222</b></m>";
  //String body = "<m a='1' b='2'><a id='1'>111111</a><a id='2'>222222</a><b id='32222'>333333</b></m>";
  
  String body = "<m a='1' b='2'><a id='1'>111111</a><c id='2'>222222</c><b id='32222'>333333</b></m>";
  
  IXMLParser xmlParser = null;
  IXMLReader xmlReader = null;
  try {
   long a = System.currentTimeMillis();
   xmlParser = XMLParserFactory.createDefaultXMLParser();
   System.out.println(System.currentTimeMillis() - a + "ms");// 1
   a = System.currentTimeMillis();
   xmlReader = StdXMLReader.stringReader(body);
   xmlParser.setReader(xmlReader);
   IXMLElement header = (IXMLElement) xmlParser.parse();
   //IXMLElement info = header.getFirstChildNamed("m");
   //System.out.println(info.getAttribute("a", ""));
   System.out.println(header.getAttribute("a", ""));
   System.out.println(header.getAttribute("b", ""));
   System.out.println(header.getContent());
   
   
   //System.out.println(header.getFirstChildNamed("a").getContent());
   System.out.println(header.getFirstChildNamed("b").getContent());
   
   IXMLElement node1 = header.getFirstChildNamed("b");
   System.out.println(node1.getAttribute("id", ""));
   
   //System.out.println(header.getChildrenCount());
   
   Vector v=header.getChildrenNamed("a");
   for (int i=0;i<v.size();i++)
   {
    IXMLElement ai=(IXMLElement)v.elementAt(i);
    long id = ai.getAttribute("id", 0);
    System.out.println("id="+id+"=="+ai.getContent());
    
   }
  
   //IXMLElement node = header.getFirstChildNamed("a");
   Iterator it = header.getChildren().iterator();
   while (it.hasNext())
   {
    IXMLElement inode = (IXMLElement) it.next();
    long id = inode.getAttribute("id", 0);
    System.out.println("id="+id);
 
   }
   

  } catch (Exception e) {
   e.printStackTrace();
  }
  
  
  

 }

}

目录
相关文章
|
1天前
|
缓存 安全 PHP
【PHP开发专栏】Symfony框架核心组件解析
【4月更文挑战第30天】本文介绍了Symfony框架,一个模块化且高性能的PHP框架,以其可扩展性和灵活性备受开发者青睐。文章分为三部分,首先概述了Symfony的历史、特点和版本。接着,详细解析了HttpFoundation(处理HTTP请求和响应)、Routing(映射HTTP请求到控制器)、DependencyInjection(管理依赖关系)、EventDispatcher(实现事件驱动编程)以及Security(处理安全和认证)等核心组件。
|
1天前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML解析器是浏览器内置的工具,用于将XML转换为JavaScript可操作的XML DOM对象。这个DOM包含遍历、修改XML节点的函数。首先,XML文档需加载到DOM中,通过XMLHttpRequest对象实现,如示例所示:根据浏览器类型创建XMLHTTP对象,打开并发送GET请求到服务器获取&quot;books.xml&quot;,然后将响应转化为DOM对象。
|
1天前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML解析器是浏览器内置的工具,用于将XML转换为JavaScript可操作的XML DOM对象。通过DOM,可以进行节点的遍历、访问和修改。以下JS代码示例展示了如何加载XML文档&quot;books.xml&quot;:首先检查XMLHttpRequest支持,然后创建请求对象,打开并发送GET请求,最后将响应转化为DOM对象。
|
1天前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML解析器是浏览器内置工具,用于将XML转换为JavaScript可操作的XML DOM对象,允许遍历、修改节点。大多数现代浏览器支持这一功能。以下JS代码示例展示了如何加载XML文档&quot;books.xml&quot;
|
1天前
|
XML JavaScript Java
详解Java解析XML的四种方法
详解Java解析XML的四种方法
15 1
|
1天前
|
缓存 Java 开发者
10个点介绍SpringBoot3工作流程与核心组件源码解析
Spring Boot 是Java开发中100%会使用到的框架,开发者不仅要熟练使用,对其中的核心源码也要了解,正所谓知其然知其所以然,V 哥建议小伙伴们在学习的过程中,一定要去研读一下源码,这有助于你在开发中游刃有余。欢迎一起交流学习心得,一起成长。
|
1天前
|
XML 存储 数据格式
探索 DTD 在 XML 中的作用及解析:深入理解文档类型定义
DTD(文档类型定义)用于定义XML文档的结构和合法元素、属性。它允许不同团体就数据交换标准达成一致,并用于验证XML数据的有效性。DTD可通过内部声明(在XML文档内)或外部声明(在单独文件中)来定义。内部声明示例显示了如何定义`note`元素及其子元素的结构,而外部声明则引用外部DTD文件。元素、属性、实体和PCDATA/CDATA是XML构建模块。DTD中,元素通过ELEMENT声明定义,属性通过ATTLIST声明定义,实体声明提供特殊字符或外部资源的快捷方式。
15 0
|
1天前
PandasTA 源码解析(二十三)
PandasTA 源码解析(二十三)
40 0
|
1天前
PandasTA 源码解析(二十二)(3)
PandasTA 源码解析(二十二)
34 0
|
1天前
PandasTA 源码解析(二十二)(2)
PandasTA 源码解析(二十二)
39 2

推荐镜像

更多