2011-03-01 60 views
0

我有一個python問題,我正在閱讀XML,並設置了兩個傳播函數;找到一個位置,而不是另一個函數在第一個位置找到一個位置,然後返回信息。我的問題是,我需要這個繼續下去的頁面,並找到每個其他事件。我不知道如果這就是現在這樣繼承人代碼一個很好的解釋:如何使一個功能重複自己

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) 

所以需要再做一次函數來獲取另一場地震,並打印出它們的孔列表。請幫忙!謝謝

回答

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 

季節味道!

5

不要嘗試和手動解析XML。有很多好的方法,包括標準庫中的ElementTree

+0

ElementTree很棒!另外xml.sax是標準庫中的一個好工具 – nkint 2011-03-01 19:38:34