pythonxml处理如何遍历所有元素?

2024-04-24 19:25:13 发布

您现在位置:Python中文网/ 问答频道 /正文

很抱歉问这个问题,尽管有很多关于这个的线索。但现在看来,没有一个能满足我的需要。在

我有一个xml文件。在

<RestaurantList>
 <Restaurant id="100000">
  <Url>http://www.example.com/</Url>
  <Name>TestRestaurant</Name>
  <Description>
   <Text>This restaurant has a generous selection of fine wines</Text>
  </Description>
 </Restaurant>
 <Restaurant id="100001">
  <Url>http://www.example.com/</Url>
  <Name>TestRestaurant1</Name>
  <Description>
   <Text>This restaurant1 has a generous selection of fine wines</Text>
  </Description>
 </Restaurant>
</RestaurantList>

我想循环所有的元素,取其中一些元素并保存到数据库中。我在python中看到了一些库,比如lxml或{}。我试过了:

^{pr2}$

但是我得到了ElementTree has no object attribute xpath错误

最好的办法是什么?提前谢谢你


Tags: textnamecomidhttpurlexamplewww
2条回答

我是这样做的:

datei = ET.parse(settings.MEDIA_ROOT+'\\table.xml')
    rests = datei.getroot()
    for each in rests:
      #do something with tags

无论如何,谢谢你的回答和意见。。在

您的示例代码可以完美地与python2.7.4和lxml3.2.3配合使用,xpath()方法返回一个包含两个Restaurant元素的列表。如果您的XML解析器坚持认为XML文件格式正确,那么可能是您给它的文件不正确,或者文件是以无法识别的编码(如UTF-16)保存的。在

要调试此问题,请尝试打印open(settings.MEDIA_ROOT+'\\table.xml').read(),并查看输出是否与有效的XML类似。如果对XML的正确性有疑问,最好也使用一个独立的工具,如^{}来验证它。在

相关问题 更多 >