2015-03-21 2 views
0

Я пытаюсь проанализировать XML-файл, содержащий эти теги.скрипт python для извлечения фраз из файла XML

<?xml version="4.0" encoding="utf-8"?> 
<phrases> 
    <phrase title="bacd_dd" version_id="10" version_string="lphaf"><![CDATA[bacd dsfbsd dfsd]]></phrase> 
    <phrase title="bcvd_ff" version_id="10" version_string="lphaf"><![CDATA[ans fkdfjid dfdf]]></phrase> 
    <phrase title="bdsd_fffd" version_id="17" version_string="lphaf 7"><![CDATA[jdhfd dsfodf wernksdlg ffguywer 
<BR> 
dsf 
sddsfdsfdsf ksdfj fdsf]]></phrase> 
</phrases> 

Теперь я хочу получить только значения тегов. Как я могу разобрать весь XML-файл?

+0

использование парсеры как [ElementTree] (http://docs.python.org/library/xml.etree.elementtree.html) [LXML] (Http: // LXML .de /) [beautifulsoup] (http://www.crummy.com/software/BeautifulSoup/) – Heisenberg

ответ

2

Попробуйте это xml.etree

import xml.etree.ElementTree as ET 
root = ET.fromstring("""<?xml version="1.0" encoding="utf-8"?> 
<phrases> 
    <phrase title="bacd_dd" version_id="1010010" version_string="1.1.0 Alpha"><![CDATA[bacd dsfbsd dfsd]]></phrase> 
    <phrase title="bcvd_ff" version_id="1010010" version_string="1.1.0 Alpha"><![CDATA[ans fkdfjid dfdf]]></phrase> 
    <phrase title="bdsd_fffd" version_id="1000017" version_string="1.0.0 Alpha 7"><![CDATA[jdhfd dsfodf wernksdlg ffguywer 
<BR> 
dsf 
sddsfdsfdsf ksdfj fdsf]]></phrase> 
</phrases>""") 

print root.tag 
>>>'phrases' 

for i in root: 
    print i.text 

>>>bacd dsfbsd dfsd 
ans fkdfjid dfdf 
jdhfd dsfodf wernksdlg ffguywer 
<BR> 
dsf 
sddsfdsfdsf ksdfj fdsf 


for i in root: 
    print i.attrib 

>>>{'version_string': '1.1.0 Alpha', 'version_id': '1010010', 'title': 'bacd_dd'} 
{'version_string': '1.1.0 Alpha', 'version_id': '1010010', 'title': 'bcvd_ff'} 
{'version_string': '1.0.0 Alpha 7', 'version_id': '1000017', 'title': 'bdsd_fffd'} 

Если потребность в разборе из xml файла.

import xml.etree.ElementTree as ET 
tree = ET.parse('file.xml') 
root = tree.getroot() 

Для более см https://docs.python.org/2/library/xml.etree.elementtree.html

+0

Вы должны использовать 'python 2.5' или выше. Также проверьте любой другой файл 'xml.py', если он отменяет его. – itzMEonTV

+0

Тогда переименуйте что-нибудь xml1.py :) – itzMEonTV

Смежные вопросы