帮忙把这个可变xml转成数组

xml属于可变的 取里面的big值及num值
如:11271

也可能是
11271271

11271271271<

simple.xml
[code="java"]

1
1
271
271
271

[/code]
用JAVA实现的
[code="java"]

import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

/**

  • 功能描述:采用sax方式解析XML
  • @author XXX
  • 2012-08-16
    */
    public class SaxParseXml extends DefaultHandler{
    private String big;
    private List list;
    private String mark;
    //只调用一次 初始化list集合

    @Override
    public void startDocument() throws SAXException {
    list=new ArrayList();
    }

    //调用多次 开始解析
    @Override
    public void startElement(String uri, String localName, String qName,
    Attributes attributes) throws SAXException {
    if(attributes.getValue(0) != null){
    mark = qName;
    big = attributes.getValue(0);
    }
    }

    //调用多次

    @Override
    public void endElement(String uri, String localName, String qName)
    throws SAXException {
    mark = null;
    }

    //只调用一次
    @Override
    public void endDocument() throws SAXException {
    }

    //调用多次
    @Override
    public void characters(char[] ch, int start, int length)
    throws SAXException {
    if(mark !=null){
    String date=new String(ch,start,length);
    String[] str = {big,date};
    list.add(str);
    }
    }

    public void getParser(){

    }

    public static void main(String[] args) {
    SAXParser parser = null;
    try {
    //构建SAXParser
    parser = SAXParserFactory.newInstance().newSAXParser();
    //实例化 DefaultHandler对象
    SaxParseXml parseXml=new SaxParseXml();
    //加载资源文件 转化为一个输入流
    InputStream stream=SaxParseXml.class.getClassLoader().getResourceAsStream("simple.xml");
    //调用parse()方法
    parser.parse(stream, parseXml);
    //遍历结果
    for(String[] str:parseXml.getList()){
    System.out.println(str[0] + "," + str[1]);
    }
    } catch (ParserConfigurationException e) {
    e.printStackTrace();
    } catch (SAXException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }

    public String getBig() {
    return big;
    }

    public void setBig(String big) {
    this.big = big;
    }

    public String getMark() {
    return mark;
    }

    public void setMark(String mark) {
    this.mark = mark;
    }

    public List getList() {
    return list;
    }

    public void setList(List list) {
    this.list = list;
    }
    }

[/code]

为什么要转成array?

如果真的要转。给你一个思路:就解析xml,可变和不可变一样啊,你把xml中每个都转换成一个属性存放在list即可。
例如:
//当然你得写这么一个转换方法,做一个通用的,成为自己的东西,将xml解析成下面的TAG标签。
List listTag = new XMLTag(str).paser().getTagByList();

亲,这样就随便它有多少个number节点了撒~
[code="js"]
var responseXML = '<?xml version="1.0" encoding="UTF-8"?>' +
'' +
'1' +
'2' +
'3' +
'';
var xmlDoc;
if (window.DOMParser){
parser = new DOMParser();
xmlDoc = parser.parseFromString(responseXML,"text/xml");
}else{ // Internet Explorer
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = "false";
xmlDoc.loadXML(responseXML);
}

 var data = new Array();
 var level = xmlDoc.getElementsByTagName("level");
 for(var i= 0; i < level.length; i++){
    if(level[i] && level[i].nodeType == 1){
        var childNumbers = level[i].childNodes;
        for(var j= 0; j < childNumbers.length; j++){
            var childNumber = childNumbers[j];
            var numberArray = new Array();
            var bigAttr = childNumber.getAttribute("big");
            numberArray.push(bigAttr);
            // alert value
            var values = childNumber.childNodes;
            for(var k= 0; k < values.length; k++){
                if(values[k].nodeType == 3){// value
                    numberArray.push(values[k].nodeValue);
                }
            }
            data.push(numberArray);
        }
    }
 }

 for(var n = 0; n < data.length; n++){
    alert("第" + (n + 1) + "个number:" + data[n]);
 }

[/code]