NanoXML组件解析xml实例

NanoXML组件解析xml实例:

noaoxml组件对xml格式的字符串解析,效率很高

 

代码如下:

 

package com.yanek.demo.xml.test;

import java.util.Vector;

import javolution.context.ObjectFactory;
import net.n3.nanoxml.IXMLElement;
import net.n3.nanoxml.IXMLParser;
import net.n3.nanoxml.IXMLReader;
import net.n3.nanoxml.StdXMLReader;
import net.n3.nanoxml.XMLException;
import net.n3.nanoxml.XMLParserFactory;

import org.apache.log4j.Logger;

 

public class NanoXMLTest {

 private static Logger logger = Logger
   .getLogger(NanoXMLTest.class.getName());

 /**
  * @param args
  */
 public static void main(String[] args) {

 
  String config = "<actions id=/"123/" name=/"test/"><action path=/"/test/" class=/"com.mystruts.demo.LoginAction/"><forward name=/"success/" url=/"hello.jsp/"/><forward name=/"fail/" url=/"fail.jsp/"/></action><action path=/"/user/" class=/"com.mystruts.demo.UserAction/"><forward name=/"success/" url=/"list.jsp/"/><forward name=/"fail/" url=/"fail.jsp/"/></action></actions>";
  IXMLParser xmlParser = null;
  IXMLReader xmlReader = null;
  
  long a = System.currentTimeMillis();
  xmlParser = NanoXMLTest.XMLPARSER_FACTORY.object();
  
  xmlReader = StdXMLReader.stringReader(config);
  xmlParser.setReader(xmlReader);
  try {
   IXMLElement root = (IXMLElement)xmlParser.parse();
   
   System.out.println(root.getAttribute("id", ""));
   System.out.println(root.getAttribute("name", ""));
   
   Vector actions= root.getChildrenNamed("action");
   
   for (int i=0;i<actions.size();i++)
   {
    IXMLElement action = (IXMLElement)actions.elementAt(i);
    
    System.out.println(action.getAttribute("path", ""));
    System.out.println(action.getAttribute("class", ""));
    
    
    Vector forwards=action.getChildrenNamed("forward");
    for (int j=0;j<actions.size();j++)
    {
     
     IXMLElement forward = (IXMLElement)forwards.elementAt(j);
     
     System.out.println(forward.getAttribute("name", ""));
     System.out.println(forward.getAttribute("url", "")); 
    }
    
    
    
   }
   
   

   
  } catch (XMLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }  
  
  
  
 }

 public static ObjectFactory<IXMLParser> XMLPARSER_FACTORY = new ObjectFactory<IXMLParser>() {
  protected IXMLParser create() {
   try {
    return XMLParserFactory.createDefaultXMLParser();
   } catch (ClassNotFoundException e) {
    logger.error(e);
   } catch (InstantiationException e) {
    logger.error(e);
   } catch (IllegalAccessException e) {
    logger.error(e);
   }
   return null;
  }
 };

}

 

输出:

 

123
test
/test
com.mystruts.demo.LoginAction
success
hello.jsp
fail
fail.jsp
/user
com.mystruts.demo.UserAction
success
list.jsp
fail
fail.jsp

 

时间: 2024-11-02 09:04:45

NanoXML组件解析xml实例的相关文章

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;imp

PHP使用xpath解析XML实例教程

XML文件在PHP网站开发的轻量级应用中使用非常广泛,而PHP解析和读取XML文件的方式有很多种,比如JS DOM.SimpleXml.Xpath等方式解析XML文件,今天来讲讲在PHP中使用Xpath解析XML的实例,同时通过Xpath解析XML的实例来介绍部分基础的Xpath语法. Xpath是什么? Xapth主要用来在XML文档中查询信息的工具,通过使用路径表达式可以解析XML文件,读取XML文件中的数据. PHP解析XML推荐教程 PHP4和PHP5版本下解析XML文档的操作方法 需要

python 解析XML python模块xml.dom解析xml实例代码_python

一 .python模块 xml.dom 解析XML的APIminidom.parse(filename)加载读取XML文件 doc.documentElement获取XML文档对象 node.getAttribute(AttributeName)获取XML节点属性值 node.getElementsByTagName(TagName)获取XML节点对象集合 node.childNodes #返回子节点列表. node.childNodes[index].nodeValue获取XML节点值 nod

JS解析XML实例分析_javascript技巧

本文实例讲述了JS解析XML的方法.分享给大家供大家参考.具体实现方法如下: <script type="javascript"> var txt="<note>"; txt=txt+"<to>George</to>"; txt=txt+"<from>John</from>"; txt=txt+"<heading>Reminder&l

jsp 读取XML的类库之DOM解析 xml实例教程

jsp教程 读取XML的类库之DOM解析 xml实例教程 xml文件: <?xml version="1.0" encoding="GB2312"?> <RESULT>   <VALUE>        <NO>A1234</NO>        <ADDR>四川省XX县XX镇XX路X段XX号</ADDR>   </VALUE>   <VALUE>      

JSP基于dom解析xml实例详解_JSP编程

本文实例讲述了JSP基于dom解析xml的方法.分享给大家供大家参考,具体如下: 初次学习用dom操作xml文件,有很多不足之处,牛人多给点建议,练习时我没对中文做乱码处理,也没做验证哦!O(∩_∩)O~ 实体类:User public class User { private String name; private String pwd; private String email; public String getName() { return name; } public void se

AJAX解析XML实例之下拉框省、市二级联动_AJAX相关

这个例子是实现省.市二级联动,当选择某一省时,改省下面的市就会在另一个下拉框显示出来.在本例中AJAX通过解析XML文件得到的数据传回到jsp页面,其中省市均是从数据库取到的值: jsp页面代码: 复制代码 代码如下: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPa

AJAX解析XML实例之下拉框省、市二级联动

这个例子是实现省.市二级联动,当选择某一省时,改省下面的市就会在另一个下拉框显示出来.在本例中AJAX通过解析XML文件得到的数据传回到jsp页面,其中省市均是从数据库取到的值: jsp页面代码: 复制代码 代码如下: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPa

java 解析 XML实例

package com.hseact.fecp.servlet; import java.io.IOException; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import org.json.JSONObject; import org.json