android XML读写

方式一:字符串拼接

StringBuilder sb=new StringBuilder();
sb.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
sb.append("<root>");
sb.append("<book>aaa</book>");
sb.append("</root>");
File path = new File(Environment.getExternalStorageDirectory().getPath(), "config.xml");
FileOutputStream fos= new FileOutputStream(path);
fos.write(sb.toString().getBytes());
fos.close();

方式二: XmlSerializer

private void XmlSerializerTest() throws IOException {
       // 1.获取XmlSerializer 类的实例,通过xml获取
        XmlSerializer serializer= Xml.newSerializer();
        File file=new File(Environment.getExternalStorageDirectory(),"config.xml");
        FileOutputStream fos=new FileOutputStream(file);
        //读写流的编码格式
        serializer.setOutput(fos,"utf-8");
       // 2.写xml开头,xml 头部的编码格式utf-8
        serializer.startDocument("utf-8",true);
        //3.写节点,命名空间xmlns ,如AndroidManifest里面定义的xmlns
        serializer.startTag(null,"root");//root开始节点

        serializer.startTag(null,"book");//book开始节点
        serializer.text("aaaaaa");
        serializer.endTag(null,"book");//book结束节点

        serializer.endTag(null,"root");//root结束节点
        // xml结束
        serializer.endDocument();
    }

解析XML:xmlPullParser

public void xmlParser(InputStream in) throws Exception {
        //获取XmlPullParser实例
        XmlPullParser xmlPullParser= Xml.newPullParser();
        xmlPullParser.setInput(in,"utf-8");
        //获取事件类型
        int type=xmlPullParser.getEventType();
        while (type!=XmlPullParser.END_DOCUMENT){
          switch (type) {
              case XmlPullParser.START_TAG:
                  //开始标签
                  //获取标签名字
                  xmlPullParser.getName();
                  //获取标签内容
                  xmlPullParser.nextText();
                  //获取属性值
                  xmlPullParser.getAttributeValue(0);
                  break;
              case XmlPullParser.END_TAG:
                  //结束标签
                  break;
          }
            //获取下一个节点
            type=xmlPullParser.nextTag();
        }
    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值