jsjgelei 2012-08-16 16:38
浏览 203
已采纳

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

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

也可能是
11271271

11271271271<

  • 写回答

3条回答 默认 最新

  • angelbill3 2012-08-16 18:04
    关注

    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]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 BP神经网络控制倒立摆
  • ¥20 要这个数学建模编程的代码 并且能完整允许出来结果 完整的过程和数据的结果
  • ¥15 html5+css和javascript有人可以帮吗?图片要怎么插入代码里面啊
  • ¥30 Unity接入微信SDK 无法开启摄像头
  • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并
  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算