解析简单xml文档

一、解析简单的xml文档

使用xml.etree.ElementTree 下的parse()

xmlName.xml的文档的内容如下:

<?xml version="1.0"?>
<data>
    <country name="zhongguo">
        <rank updated="yes">2</rank>
        <year >2017</year>
        <gdppc>14110</gdppc>
        <neighbor name="riben" direction="e"/>
        <neighbor name="hanguo" direction="w"/>
    </country>
     <country name="chaoxian">
        <rank updated="yes">3</rank>
        <year >2016</year>
        <gdppc>59900</gdppc>
        <neighbor name="zhongguo" direction="w"/>
        <neighbor name="hanguo" direction="e"/>
    </country>
     <country name="meiguo">
        <rank updated="yes">5</rank>
        <year >2009</year>
        <gdppc>13600</gdppc>
        <neighbor name="yingguo" direction="n"/>
        <neighbor name="deguo" direction="s"/>
    </country>
</data>

以下代码是对xmlName.xml文档的解析

from xml.etree.ElementTree import parse

with open(‘xmlName.xml‘) as f:
    et = parse(f)
    root = et.getroot()
    print root
    print root.tag
    print root.attrib
    print root.text
    print root.text.strip()
    # child = root.getchildren() 将被去掉
    for child in root:
        print child.get(‘name‘)

    ‘‘‘下面的三个用只能找到根元素的直接子元素‘‘‘
    root.find(‘country‘)
    root.findall(‘country‘)
    root.iterfind(‘country‘)

    ‘‘‘可以找到任意元素‘‘‘
    print list(root.iter())
    print list(root.iter(‘rank‘))

    ‘‘‘findall()的高级用法‘‘‘
    root.findall(‘country/*‘) #coutry元素下的所有子元素,/*
    root.findall(‘.//rank‘) #所有rank元素,.//
    root.findall(‘.//rank/..‘) #所有rank元素的父元素, /..

    root.findall(‘country[@name]‘) #有name属性的coutry元素,@attrib
    root.findall(‘country[@name="chaoxian"]‘) #name属性等于"chaoxian"的coutry元素,@attrib="value"

    root.findall(‘country[rank]‘) #子元素有rank元素的country元素,tag
    root.findall(‘country[rank="1"]‘) #子元素有rank="1"的country元素,tag=text

    root.findall(‘country[1]‘) #索引为1的country元素,根据位置查找
    root.findall(‘country[last()]‘) #最后一个country元素
    root.findall(‘country[last()-1]‘) #倒数第二个country元素
时间: 2024-11-03 21:53:08

解析简单xml文档的相关文章

[翻译][Ruby教程]Nokogiri - 解析HTML/XML文档 / Parsing an HTML/XML Document

From a String From a File From the Internet Parse Options Encoding 原文: Parsing an HTML/XML Document 解析HTML/XML文档 从字符串读取 We’ve tried to make this easy on you. Really! We’re here to make your life easier. 1 html_doc = Nokogiri::HTML("<html><bo

org.w3c.dom(java dom)解析XML文档

位于org.w3c.dom操作XML会比较简单,就是将XML看做是一颗树,DOM就是对这颗树的一个数据结构的描述,但对大型XML文件效果可能会不理想 首先来了解点Java DOM 的 API:1.解析器工厂类:DocumentBuilderFactory 创建的方法:DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 2.解析器:DocumentBuilder 创建方法:通过解析器工厂类来获得 DocumentBu

xml基础及其解析xml文档

xml基础及其解析xml文档 xml基础及其解析xml文档 xml基础语法 中国特色乱码问题 写xml文件的工具 xml中使用的转义字符 处理指令已经过时 xml的两个重要的功能 xml注释 xml解析Java应用程序读取xml文件的内容 xml解析原理 xml解析工具 DOM4J使用 DOM4J中核心API 将xml文档从磁盘读进内存形成Document对象 读取所有的标签节点 读取所有的属性节点 读取所有的文本节点 解决上面提出的问题 xml基础语法 一个基本的xml构成: <!--vers

Java学习总结(21)——XML文档解析:DOM解析,SAX解析

一.XML简介1.可扩展性标记语言(eXtensible Markup Language)2.XML用于描述数据3.应用场合:(1)持久化存储数据(2)数据交换(3)数据配置4.XML语法(1)文档类型:在编写XML文档时,需要先使用文档声明,声明XML文档的类型.最简单的声明语法:<?Xml version="1.0" ?>用encoding属性说明文档的字符编码:<?Xml version="1.0" encoding="GB2312

浅谈用java解析xml文档(四)

继续接上一文,这一阵子因为公司项目加紧,导致最后一个解析xml文档的方式,还没有总结,下面总结使用dom4J解析xml. DOM4J(Document Object Model for Java) 使用dom4j解析,个人认为是四种解析方式里面最方便的一种,DOM4J是一个非常非常优秀的Java XML API,具有性能优异.功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件.如今你可以看到越来越多的Java软件都在使用DOM4J来读写XML,特别值得一提的是连Sun的JAXM也在用D

浅谈用java解析xml文档(一)

关于xml本身的语法及使用的环境不多说了,网上有很多规则, 然对xml文档进行解析,一般分为四种解析方式,基于java官方文档的Dom 和Sax解析,还有就是基于 第三方jar包的 Jdom 和 Dom4j解析. 一.首先我们来看Dom解析: 1.定义工厂,使应用程序能够从 XML 文档获取生成 DOM 对象树的解析器. DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 在应用程序获取对 DocumentBuil

详解xml文件描述,读取方法以及将对象存放到xml文档中,并按照指定的特征寻找的方案

主要的几个功能: 1.完成多条Emp信息的XML描述2.读取XML文档解析Emp信息3.将Emp(存放在List中)对象转换为XML文档4.在XML文档中查找指定特征的Emp信息 dom4j,jaxen 官网下载页面: http://sourceforge.net/projects/dom4j/files/dom4j-2.0.0-ALPHA-2/ 也可以在网盘上面下载:http://yunpan.cn/cwaNde7UYN83d  提取码 e247 1 完成多条Emp信息的XML描述 1.1 问

Android解析XML文档的两种方式的简单对比

Android之所以会用到解析XML文档,不仅与JAVA对XML的解析比较简单,而且还因为XML是Android在网络间传递信息的主要存储方式.下面我简单谈谈Android对XML文档解析的两种方式:dom和sax.dom解析方式是,解析方法将一个XML文件看成是一棵树.由数据结构的知识我们知道对树的处理比较简单,就是对树的节点进行增,删,改,查,这也是dom的一个最大优点.但是,dom方式在解析的时候是一次性就将整个XML文档读进内存,这坏处不用我说了吧,我宝贵的内存是禁不起这么折腾的. sa

网络电视精灵~分析~~~~~~简单工厂模式,继承和多态,解析XML文档

小总结: 所用技术: 01.C/S架构,数据存储在XML文件中 02.简单工厂模式 03.继承和多态 04.解析XML文档技术 05.深入剖析内存中数据的走向 06.TreeView控件的使用 核心:通过该项目,我们对业务流程有一个整体把控.对继承和多态有深入的了解 下面是类图: 主界面图: 核心思路: 1   1.首先在频道管理类ChannelManager中写一个加载所有频道方法LoadAllChannel; 2   3        该方法作用读取FullChannels.xml文件,并且