免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2537 | 回复: 3
打印 上一主题 下一主题

xml相关问题 [复制链接]

论坛徽章:
1
申猴
日期:2014-03-27 09:12:41
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-03-04 15:58 |只看该作者 |倒序浏览
import xml.etree.ElementTree as ET
country_data_as_string="""<?xml version="1.0"?>
<data>
    <country name="Liechtenstein">
        <rank>1</rank>
        <year>2008</year>
        <gdppc>141100</gdppc>
        <neighbor name="Austria" direction="E"/>
        <neighbor name="Switzerland" direction="W"/>
    </country>
    <country name="Singapore">
        <rank>4</rank>
        <year>2011</year>
        <gdppc>59900</gdppc>
        <neighbor name="Malaysia" direction="N"/>
    </country>
    <country name="Panama">
        <rank>68</rank>
        <year>2011</year>
        <gdppc>13600</gdppc>
        <neighbor name="Costa Rica" direction="W"/>
        <neighbor name="Colombia" direction="E"/>
    </country>
</data>
"""
tree = ET.parse('country_data.xml')
root = tree.getroot()
root = ET.fromstring(country_data_as_string)

      
tree=ET.ElementTree(root)

对于这个程序,我想修改其中的一个rank值或者是任意改变这三个rank值,该怎么弄?我试了下find()但是好像不行还是我写的不对。求大神指点下

论坛徽章:
11
技术图书徽章
日期:2014-03-01 14:44:34天蝎座
日期:2014-05-21 22:11:59金牛座
日期:2014-05-30 17:06:14
2 [报告]
发表于 2014-03-04 17:35 |只看该作者
回复 1# 铸剑长空
还没搞定?文档的“XPath support”,有几个例子。下面是找第二个rank,两种方法,找到后应该会修改吧。
  1. >>> root.find('./country[2]/rank').text
  2. '4'
  3. >>> root.find("./country[@name='Singapore']/rank").text
  4. '4'
复制代码

论坛徽章:
1
申猴
日期:2014-03-27 09:12:41
3 [报告]
发表于 2014-03-05 17:34 |只看该作者
跪谢。。当时用的时候没搞懂。。试了好多次不成。。多谢多谢。。回复 2# timespace


   

论坛徽章:
1
申猴
日期:2014-03-27 09:12:41
4 [报告]
发表于 2014-03-08 13:53 |只看该作者
你好,还有个问题想问下,我要用的xml的文件有很多层,比如


我想读出Aera的值
import xml.etree.ElementTree as ET
with open('jiyi.xml') as fp:
    jiyi_as_string=fp.read()
tree = ET.parse('jiyi.xml')
root = tree.getroot()
root = ET.fromstring(jiyi_as_string)
x1=root.find('./Vsp_Geometry/Component_List[1]/Component/Section_List/Section/Area').text
print x1
这是我写的程序
但是出现了
Traceback (most recent call last):
  File "F:\python练习\jiexi", line 4, in <module>
    tree = ET.parse('jiyi.xml')
  File "H:\Python27\lib\xml\etree\ElementTree.py", line 1182, in parse
    tree.parse(source, parser)
  File "H:\Python27\lib\xml\etree\ElementTree.py", line 656, in parse
    parser.feed(data)
  File "H:\Python27\lib\xml\etree\ElementTree.py", line 1642, in feed
    self._raiseerror(v)
  File "H:\Python27\lib\xml\etree\ElementTree.py", line 1506, in _raiseerror
    raise err
ParseError: mismatched tag: line 243, column 39
这样的错误,不知道怎么修改。。

回复 2# timespace
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP