如何使一个函数重复自己

时间:2011-03-01 19:19:21

标签: python

我有一个python问题,我正在读取XML并设置了两个扩展函数;一个找到一个位置,而另一个函数找到一个位置在第一个位置内,并返回信息。我的问题是我需要这个继续向下页面并找到每个的其他事件。我不确定这是否是现在如此heres代码的一个很好的解释:

def findEntryTag(webPage):
 start= webPage.find("<entry>") +7
 end= webPage.find("</entry>")
 slicedString=webPage[start:end]
 return slicedString

def findEarthquake(webPage):
 slicedString=findEntryTag(webPage)
 start= slicedString.find("<title>") +7
 end= slicedString.find("</title>")
 eq= slicedString[start:end]
 return eq

my Earthquake= findEarthquake(text)
print (myEarthquake)

因此需要它再次执行这些功能以获得另一次地震并打印出它们的孔列表。请帮忙!感谢

2 个答案:

答案 0 :(得分:5)

不要尝试手动解析XML。有很多好方法可以做到,包括标准库中的ElementTree

答案 1 :(得分:1)

lxml.etree使这很好用。

对于如此构造的XML文档:

<entry>
    <title>story 1</title>
    <text>this is the first earthquake story</text>
    <title>story 2</title>
    <text>this is the second earthquake story</text>
    <title>story 3</title>
    <text>this is the third earthquake story</text>
</entry>

您可以像这样使用lxml.etree来解析它:

from lxml import etree

root = etree.parse("test.xml")

for element in root.iter("title"):
    print("%s - %s" % (element.tag, element.text))

(来自http://lxml.de/tutorial.html的例子)

结果如下:

title - story 1
title - story 2 
title - story 3

品尝季节!