`
lily0813
  • 浏览: 4067 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

xml创建与解析代码

xml 
阅读更多
写一个很简单的例子记录一下XML的创建与解析。

创建与解析其实是两个互逆的过程,会了其中一个对应的就能写出来。

创建用XmlSerializer xmlSerializer=Xml.newSerializer();

解析用XmlPullParser xmlPullParser=Xml.newPullParser();

[java] view plaincopy
package com.example.xmlborn; 
 
import java.io.IOException; 
import java.io.StringReader; 
import java.io.StringWriter; 
import java.util.ArrayList; 
 
import org.xmlpull.v1.XmlPullParser; 
import org.xmlpull.v1.XmlPullParserException; 
import org.xmlpull.v1.XmlSerializer; 
 
import android.R.xml; 
import android.os.Bundle; 
import android.app.Activity; 
import android.util.Xml; 
import android.view.Menu; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.TextView; 
import android.widget.Toast; 
 
public class MainActivity extends Activity implements OnClickListener{ 
    Button xmlpullButton; 
    private String result; 
    private TextView textView; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_main); 
        String resource=produceXML(); 
        textView=(TextView) findViewById(R.id.text); 
        xmlpullButton=(Button) findViewById(R.id.button1); 
        xmlpullButton.setOnClickListener(this); 
    } 
    @Override 
    public void onClick(View v) { 
        // TODO Auto-generated method stub 
        switch (v.getId()) { 
        case R.id.button1: 
            result=parseXML(); 
            if (result!=null) { 
                textView.setText(result); 
            }else { 
                Toast.makeText(getApplicationContext(),"null",1000).show(); 
            } 
             
            break; 
 
        default: 
            break; 
        } 
    } 
    private String produceXML() { 
        // TODO Auto-generated method stub 
        StringWriter writer=new StringWriter(); 
        XmlSerializer xmlSerializer=Xml.newSerializer(); 
        ArrayList<Beauty> list=getData(); 
        try { 
            xmlSerializer.setOutput(writer); 
            xmlSerializer.startDocument("UTF-8",true); 
            xmlSerializer.startTag(null,"beauties"); 
            for (Beauty beauty:list) { 
             
                xmlSerializer.startTag(null,"beautyname"); 
                xmlSerializer.text(beauty.getNameString()); 
                xmlSerializer.endTag(null,"beautyname"); 
                xmlSerializer.startTag(null,"age"); 
                xmlSerializer.text(beauty.getAge()); 
                xmlSerializer.endTag(null,"age"); 
                 
            } 
            xmlSerializer.endTag(null,"beauties"); 
            xmlSerializer.endDocument(); 
             
        } catch (IllegalArgumentException e) { 
            // TODO Auto-generated catch block 
            e.printStackTrace(); 
        } catch (IllegalStateException e) { 
            // TODO Auto-generated catch block 
            e.printStackTrace(); 
        } catch (IOException e) { 
            // TODO Auto-generated catch block 
            e.printStackTrace(); 
        } 
        return writer.toString(); 
    } 
 
    private ArrayList<Beauty> getData() { 
        // TODO Auto-generated method stub 
        ArrayList<Beauty> list=new ArrayList<Beauty>(); 
        Beauty lily=new Beauty("lily","23"); 
        Beauty lucy=new Beauty("lucy","36"); 
        list.add(lily); 
        list.add(lucy); 
        return list; 
    } 
     
     
 
    private String parseXML() { 
        result="通过pull解析结果为:"; 
        String xmlString=produceXML(); 
        StringReader in=new StringReader(xmlString); 
    XmlPullParser xmlPullParser=Xml.newPullParser(); 
    try { 
        xmlPullParser.setInput(in); 
        int type=xmlPullParser.getEventType(); 
        while (type!=XmlPullParser.END_DOCUMENT) { 
        String nodeName=xmlPullParser.getName(); 
        switch (type) { 
        case XmlPullParser.START_TAG: 
            if("beautyname".equals(nodeName)){ 
                result +="姓名:"+xmlPullParser.nextText(); 
            }if ("age".equals(nodeName)) { 
                result +="年龄:"+xmlPullParser.nextText(); 
            } 
            break; 
 
         
        } 
        type=xmlPullParser.next(); 
        } 
    } catch (XmlPullParserException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
    } catch (IOException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
    } 
        return result; 
        // TODO Auto-generated method stub 
         
    } 
     
class Beauty{ 
         
        String nameString,age; 
         
        public String getNameString() { 
            return nameString; 
        } 
 
        public void setNameString(String nameString) { 
            this.nameString = nameString; 
        } 
 
        public String getAge() { 
            return age; 
        } 
 
        public void setAge(String age) { 
            this.age = age; 
        } 
 
        public Beauty(String nameString, String age) { 
            super(); 
            this.nameString = nameString; 
            this.age = age; 
        } 
         
    } 

代码地址:http://download.csdn.net/detail/u010095768/5534015
分享到:
评论

相关推荐

    DOM解析XML 创建XML

    DOM解析XML和创建XML是Web开发中的基础技能,尤其在处理动态数据和接口交互时,理解并掌握DOM与XML的结合应用至关重要。在实际项目中,我们可能还需要结合其他技术,如XSLT(用于转换XML)和XPath(用于在XML文档中...

    xml解析器的源代码

    深入理解XML解析器的源代码有助于开发人员更有效地处理XML数据,优化性能,以及解决与XML解析相关的错误。同时,这也有助于学习XML规范,提升软件工程能力。通过分析和修改这些源代码,可以定制化解析器以满足特定...

    android SAX PULL 解析XML文件 代码 详解

    这种方式非常适合于简单的XML解析任务,且代码更加简洁。以下是一个基本的PULL解析示例: ```java XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); XmlPullParser parser = factory....

    XML解析代码

    本压缩包提供了XML解析与生成的四种方式的代码示例,这些都是Android Studio项目中的常见操作。 1. DOM解析 DOM(Document Object Model)是XML的一种树型结构表示,通过加载整个XML文档到内存,可以方便地访问和...

    XMLParser(XML解析代码 C++版)

    XMLParser可能是一个封装了TinyXML或其他XML解析库的自定义类,它可能提供了更高级别的接口,使得与XML数据交互更加直观。例如,它可能会有如下的API: - `parseFile(const std::string& filePath)`: 加载并解析XML...

    XML解析程序代码供测试

    在实际应用中,你可能还需要了解其他相关知识,如XML命名空间、DTD(Document Type Definition)或XSD(XML Schema Definition)验证、DOM与SAX解析方式的区别等。总之,这个压缩包提供的代码将是一个实用的起点,...

    讲xml转换成代码

    总的来说,将XML转换为Delphi代码涉及到XML解析、数据结构映射和源码生成等多个步骤。这需要对XML语法、Delphi的面向对象编程以及代码生成技术有深入的理解。通过这样的工具,开发者可以提高代码的复用性,简化数据...

    简易的xml解析代码

    8. **对比DOM解析**:与DOM解析相比,这个简易解析器可能更节省内存,因为DOM会加载整个XML文档到内存中形成一个树形结构,而这个解析器可能采用事件驱动的方式,按需读取XML数据,减少了内存占用。 9. **扩展性**...

    tinyxml2解析和创建xml样例

    在本文中,我们将深入探讨如何使用TinyXML2来解析和创建XML文件,特别是涉及到CDATA区段和元素的多属性处理。 首先,让我们了解XML的基本概念。XML(Extensible Markup Language)是一种用于存储和传输结构化数据的...

    易语言 xml解析 易语言 xml解析 教程 带源码

    4. **SAX解析**:与DOM不同,SAX解析器不将整个XML文档加载到内存,而是通过事件回调函数处理每个元素的开始和结束、处理属性等。在易语言中,我们需要定义一系列的事件处理函数,如`开始文档`、`结束文档`、`开始...

    js解析xml文件的完整代码

    本篇文章将详细探讨如何在JavaScript中解析XML文件,并提供一个完整的代码示例。 首先,我们需要了解JavaScript中的两个核心对象:`DOMParser`和`ActiveXObject`。`DOMParser`是现代浏览器支持的标准方法,用于在...

    xml 解析源代码和应用

    在这个项目中,开发者可能创建了一个用户界面,通过按钮或其他控件触发XML解析操作,展示如何在实际应用中使用XML解析器。 `WindowsFormsApplication1`可能是项目的主程序文件,通常为`.cs`后缀,其中包含了程序的...

    PB 解析XML (代码案例)

    2. **创建XML对象**:通过`Create`语句创建XMLParser或XMLDOMDocument对象,这是解析XML文档的基础。例如: ```pb xmlParser = Create XMLParser ``` 3. **加载XML文档**:使用`LoadFromFile`或`LoadFromText`...

    android xml 各种解析 经典完整代码

    本资源“android xml 各种解析 经典完整代码”显然提供了一系列用于处理XML的Android代码示例,旨在帮助开发者更高效地理解和操作XML文档。下面将详细介绍Android中XML解析的几种主要方法及其应用。 1. DOM解析器...

    python脚本用于xml解析的源代码

    这个库提供了一种高效且易于使用的API,可以方便地解析、创建和修改XML文档。 在`src`目录中,可能包含的是实现XML解析的Python源代码文件。这些文件可能定义了函数或类,用于读取XML文件,遍历XML树,以及提取特定...

    vb.net xml创建保存读取

    4. XML事件处理:通过实现`XmlReaderSettings`的事件处理程序,可以在解析XML时执行操作,例如错误处理或数据验证。 5. LINQ to XML:VB.NET中的LINQ to XML提供了丰富的API,简化了XML操作,包括查询、修改和创建...

    XML解析代码实现.rar

    这些示例可能包括了创建解析器、注册事件处理器、读取XML文件、处理元素和属性等内容。通过学习这些代码,开发者可以了解到XML解析器的初始化、事件监听以及如何提取和操作XML数据。 在开发过程中,XML解析还涉及到...

    xml解析vc 源代码

    本资源包含的"xml解析vc 源代码"提供了在VC环境下处理XML文件的方法。 XML解析主要有两种方式:DOM(Document Object Model)和SAX(Simple API for XML)。DOM解析器将整个XML文档加载到内存中,形成一个树形结构...

    XML解析还原代码

    而SAX解析则是事件驱动的,逐行读取文件,不创建完整的DOM树,适合处理大型XML文件。在这个案例中,我们提到的“xml解析还原代码”很可能采用了DOM解析方式,因为需要构建二叉树来存储数据。 接下来,我们将数据...

Global site tag (gtag.js) - Google Analytics