我有文件,該文件包含以下格式 <scientist_names> <scientist>abc</scientist> </scientist_names>
我想使用Python來去掉上面的格式科學家,我應該如何去做的名科學家的名字文檔標記? 我想用普通epressions但不知道如何使用它......請幫助剝離(XML?)從使用python
回答
如上所述,這似乎是xml。在這種情況下,您應該使用xml解析器來解析此文檔;我建議lxml(http://lxml.de)。
考慮您的要求,您可能發現它更方便地使用SAX風格的解析,而不是DOM的風格,因爲SAX解析只涉及註冊處理程序時解析器遇到一個特定的標籤,只要意思一個標籤不依賴於上下文,並且你有多種類型的標籤可供處理(這裏可能不是這種情況)。
在情況可能會錯誤地形成的輸入文檔,你不妨用美麗的湯:http://www.crummy.com/software/BeautifulSoup/bs3/documentation.html#Parsing XML
我不擅長XML我怎麼才能簡單地使用字符串函數? – 2012-02-13 16:02:28
@ user997704:你沒有。學會使用正確的工具來完成這項工作。 – Marcin 2012-02-13 16:05:45
我想使用,但我沒有得到快速入門指南學習SAX – 2012-02-13 16:10:27
這是XML,你應該使用XML解析器像lxml
,而不是正則表達式(因爲XML是不是一個正規語言)。
下面是一個例子:
from lxml import etree
text = """<scientist_names> <scientist>abc</scientist> </scientist_names>"""
tree = etree.fromstring(text)
for scientist in tree.xpath("//scientist"):
print scientist.text
不要使用正則表達式!(所有原因都很好地解釋了[here])
使用xml/html解析器,看看BeautifulSoup。
下面是一個簡單的例子,應該處理的XML標籤爲您
#import library to do http requests:
import urllib2
#import easy to use xml parser called minidom:
from xml.dom.minidom import parseString
#all these imports are standard on most modern python implementations
#download the file if it's not on the same machine otherwise just use a path:
file = urllib2.urlopen('http://www.somedomain.com/somexmlfile.xml')
#convert to string:
data = file.read()
#close file because we dont need it anymore:
file.close()
#parse the xml you downloaded
dom = parseString(data)
#retrieve the first xml tag (<tag>data</tag>) that the parser finds with name tagName,
#in your case <scientist>:
xmlTag = dom.getElementsByTagName('scientist')[0].toxml()
#strip off the tag (<tag>data</tag> ---> data):
xmlData=xmlTag.replace('<scientist>','').replace('</scientist>','')
#print out the xml tag and data in this format: <tag>data</tag>
print xmlTag
#just print the data
print xmlData
如果你發現任何不清楚的只是讓我知道
錯誤,同時執行'data = file.read()'str對象沒有atrribute'讀' – 2012-02-13 12:43:27
- 1. 從xml使用xslt剝離html標記
- 2. jQuery IE6從XML剝離HTML。
- 3. 剝離從CALS
- 4. 使用python剝離自定義方法
- 5. 使用Python的.strip剝離標點()
- 6. 如何剝離XML數據
- 7. Excel到XML數據剝離
- 8. 從XML剝離標籤同時使用XSLT
- 9. 剝離從列表
- 10. 使用python從文件中剝離一段文本
- 11. 使用Python/bs4從論壇剝離HTML標籤
- 12. 剝離HTTP://和使用Excel
- 13. 從url中剝離文本
- 14. Apache從html剝離評論
- 15. 從csv文件中剝離「$」
- 16. XQuery剝離來自XML的註釋
- 17. 捲曲和ヶ輛剝離XML標籤
- 18. XmlSerializer.Serialize剝離<xml>標記
- 19. 剝離一些XML文檔標籤
- 20. 剝離Java中的無效XML字符
- 21. 剝離CData的標籤XML的Perl
- 22. 使用php剝離XML字段中的一些數據
- 23. PDF文件從iPhone剝離MFMailComposeViewController調用
- 24. TeamCity從vcs用戶名剝離域
- 25. 使用PHP從字符串剝離BB型標記使用PHP
- 26. 剝離鋼軌只用於API使用
- 27. 剝離的#define
- 28. Joomla剝離#usemap
- 29. XmlNodes剝離HTML
- 30. TinyMCE剝離HTML
這看起來像XML。查看[xml.dom.minidom](http://docs.python.org/library/xml.dom.minidom.html)。 – 2012-02-13 11:55:00
如果我有這樣的連續行' abc xzz '那麼任何人都可以告訴我最快的方式來提取數據 –
2012-02-13 18:47:09