`
xiejieyi2006
  • 浏览: 13941 次
文章分类
社区版块
存档分类
最新评论

读取XML文件,解析XML文件

阅读更多
1.读取XML文件
<?xml version="1.0" encoding="UTF-8"?>  
<userlist>
	<user>
		<name>zhangsan</name>
		<mobile>123456789</mobile>
		<email>zhangsan@125.com</email>
		<birthday>1980-06-26</birthday>
	</user>
	
	<user>
		<name>lisi</name>
		<mobile>156748951</mobile>
		<email>lisi@125.com</email>
		<birthday>1989-06-06</birthday>
	</user>
</userlist>

(1)inputStream类型
InputStream input = this.getClass().getClassLoader().getResourceAsStream("user.xml");

(2)转成string类型
InputStream input = this.getClass().getClassLoader().getResourceAsStream("user.xml");
        SAXReader saxReader = new SAXReader();
        Document document = null;
String xmlData = document.asXML();

2.解析XML文件
(1)String类型输入
List<User> userList = new ArrayList<User>(10);
        
        try
        {
            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
            DocumentBuilder db = dbf.newDocumentBuilder();
            [b]InputSource is = new InputSource();
            is.setCharacterStream(new StringReader(xmlData));[/color]            
            //转换成document后解析,不管是inputsteam或者string
            Document doc = db.parse(is);[/b]      
            NodeList usersNodes = doc.getElementsByTagName("user");
            for (int i = 0; i < usersNodes.getLength(); i++)
            {
                Element usersElement = (Element)usersNodes.item(i);
                User user = new User();
                NodeList childNodes = usersElement.getChildNodes();
                //          System.out.println("*****"+childNodes.getLength());   
                for (int j = 0; j < childNodes.getLength(); j++)
                {
                    if (childNodes.item(j).getNodeType() == Node.ELEMENT_NODE)
                    {
                        if ("name".equals(childNodes.item(j).getNodeName()))
                        {
                            user.setName(childNodes.item(j).getFirstChild().getNodeValue());
                        }
                        else if ("mobile".equals(childNodes.item(j).getNodeName()))
                        {
                            user.setMobile(childNodes.item(j).getFirstChild().getNodeValue());
                        }
                        else if ("email".equals(childNodes.item(j).getNodeName()))
                        {
                            user.setEmail(childNodes.item(j).getFirstChild().getNodeValue());
                        }
                        else if ("birthday".equals(childNodes.item(j).getNodeName()))
                        {
                            String dataString = childNodes.item(j).getFirstChild().getNodeValue();
                            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                            
                            try
                            {
                                Date date = sdf.parse(dataString);//字符串转时间   
                                user.setBirthday(date);
                            }
                            catch (ParseException e)
                            {
                                e.printStackTrace();
                            }
                            
                        }
                    }
                    
                }//end for j  
                userList.add(user);
            }
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }

(2)inputstream类型
将红色部分换成如下代码
Document document = null;
                try
                {
                    builder = factory.newDocumentBuilder();
                    
                }
                catch (ParserConfigurationException e1)
                {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }
                
                try
                {
                    document = builder.parse(xmlData);
                }
                catch (SAXException e1)
                {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }
                catch (IOException e1)
                {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }
                
               Element element = document.getDocumentElement();
分享到:
评论

相关推荐

    pb下读写xml文件的例子.rar_pb_pb 读取xml_pb 读取xml文件_pb9 xml_pb下读写xml文件的例子

    总结,PowerBuilder 9为处理XML文件提供了强大的支持,通过XMLDocument对象和DOM解析器,我们可以轻松地读取、写入和操作XML数据。这些功能使PB9成为开发涉及XML的应用的理想工具,帮助开发者高效地完成数据交换和...

    读取XML文件的四种方法

    使用DOM方法读取XML文件,需要创建DocumentBuilderFactory对象,获取DocumentBuilder对象,然后解析XML文件得到Document对象。最后,使用Document对象的getElementsByTagName方法获取指定标签的节点列表,并遍历节点...

    C# WinForm 读写XML文件

    在C# WinForm应用程序中,读写XML文件是常见的数据操作任务。XML(eXtensible Markup Language)是一种用于存储和传输数据的标准格式,它结构清晰、易于解析且跨平台。下面将详细介绍如何使用C# WinForm来实现XML...

    tinyxml2解析XML文件读取数据

    本项目“tinyxml2解析XML文件读取数据”主要关注如何使用tinyxml2库来高效地解析XML文件并提取其中的数据。以下将详细介绍tinyxml2库的关键功能和使用方法。 1. **tinyxml2库介绍** - tinyxml2提供了DOM(Document...

    android下解析xml文件的demo

    本教程将详细介绍如何在Android环境下解析XML文件,以"ReadXMLDemo"为例,展示具体步骤和关键知识点。 首先,XML(eXtensible Markup Language)是一种自定义标记语言,它的结构清晰,易于读写,适合于数据交换和...

    xml解析文件的两种方式

    - **SAX** 则适用于处理大型XML文件,或者只需要按顺序读取数据而不需要反复访问的情况。 **HotelManagementSys 示例** 在HotelManagementSys项目中,可能有一个XML文件存储酒店的预订信息,包括客户姓名、房间...

    xml.zip_matlab读取xml文件实例_xml文件读取

    `xmlread`用于读取XML文件并将其转换为一个文档对象模型(DOM)树,而`xmlwrite`则可以将DOM树写回到XML文件。DOM树是一种数据结构,它代表了XML文件的整个内容,允许我们遍历和修改文件的各个部分。 例如,假设...

    C++解析xml文件

    本文将深入探讨如何使用C++来解析XML文件,主要围绕“C++实现对xml文件的解析”这一主题展开。 XML文件通常包含一系列元素,每个元素都有开始标签、结束标签和可能的属性。C++中解析XML文件的方法多种多样,这里...

    使用tinyxml 读写xml文件方法

    在本文中,我们将深入探讨如何使用 TinyXML 来读写 XML 文件,以及它在 Visual C++ 开发环境中的应用。 1. **TinyXML 的基本结构** TinyXML 提供了一系列类来表示 XML 文档的不同部分,如 `TiXmlDocument`(XML ...

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

    在易语言中,学习XML解析有助于开发者有效地读取、写入和处理XML文档,实现数据的存取和应用。 易语言XML解析主要涉及到以下几个关键知识点: 1. **XML基础**:首先,我们需要了解XML的基本结构和语法规则,如元素...

    C写的解析xml文件源代码

    3. **解析XML**:解析XML文件的核心是将读取到的文本转换为内部的数据结构。C语言中没有内置的XML解析库,但可以使用第三方库如libxml2,或者自行编写解析算法。自行编写时,可以使用字符串处理函数如`strtok()`来...

    读取PLC寄存器,读写XML文件

    1. **解析XML**:解析XML文件意味着将其内容分解成易于处理的元素。Python中的`ElementTree`库和Java的`DOM` API都是常用的解析工具。它们可以将XML文件转换为树形结构,便于遍历和操作。 2. **读取XML**:通过解析...

    js 操作xml 文件 读取xml文件

    js 操作xml 文件 读取xml文件 js 操作xml 文件 读取xml文件

    天气预报 .xml文件解析

    2. **解析XML文件**:使用解析库提供的API读取XML文件,创建一个ElementTree对象,然后遍历元素树,提取所需数据。例如,可以使用ElementTree的`find()`或`findall()`方法找到特定标签的元素,再通过`.text`属性获取...

    js读取xml文件并获取文件内容

    通过以上内容,我们可以看到使用JavaScript读取和解析XML文件的过程并不复杂。主要步骤包括创建`XMLHttpRequest`对象、发送请求、接收响应并将数据展示在页面上。这种方法非常适合于动态网页应用,能够提高用户体验...

    基于QT实现XML文件读写操作,解析操作

    在QT中处理XML文件,可以方便地进行数据的读取、写入和解析,使得应用程序能够与XML数据进行交互。 首先,我们需要了解QT中的QDomDocument类,它是QT提供的XML解析器,可以用来加载、修改和保存XML文档。使用...

    VB读取XML文件

    Visual Basic(简称VB),作为一款功能强大的编程语言,支持多种方式来读取和解析XML文件。本文将详细介绍如何使用VB来读取XML文件,并提供示例代码帮助读者更好地理解和掌握这一技能。 #### 二、基础知识 在开始...

    C#读取XML文件并写入数据库

    通过创建`XmlReader`实例,我们可以逐个节点遍历XML文件,每次读取一个节点时,解析数据并直接插入数据库。这种方法适用于大文件,防止一次性加载整个文件到内存中。 - 示例代码: ```csharp using (var reader =...

    kettle批量解析多个xml文件

    Kettle提供了解析XML文件并将其转换为结构化数据的能力,可以方便地处理各种XML格式,确保数据能够正确无误地导入Oracle数据库进行进一步的分析或存储。 以下是使用Kettle批量解析XML文件并导入到Oracle数据库的...

    C++ 读写XML文件

    本项目"**C++ 读写XML文件**"是针对MFC(Microsoft Foundation Classes)框架的一个示例,展示了如何在C++环境中方便地操作XML文件。 首先,我们需要了解XML的基本结构。XML文件由元素(Element)、属性(Attribute...

Global site tag (gtag.js) - Google Analytics