User Tools

Site Tools


xml_parsing
<?xml version='1.0' encoding='utf-8'?>
<rss version="2.0">
 <channel>
  <title>
   Naver Open API - endic ::'media'
  </title>
  <link>
   http://search.naver.com
  </link>
  <description>
   Naver Search Result
  </description>
  <lastbuilddate>
   Fri, 31 Jul 2009 11:17:34 +0900
  </lastbuilddate>
  <total>
   24
  </total>
  <start>
   1
  </start>
  <display>
   5
  </display>
  <item>
   <title>
    media&lt;SUP&gt;1&lt;/SUP&gt;
   </title>
   <link>
    http://openapi.naver.com/l?AAACupLEi1Tc1LyUxWK81MsTUxMzK1UCssTS2qtM1NTclMVMsoSk2zzSgpKVA1dlQ1cgMisGq9vMSy1CK95PxcVBFVY7eU/OTMFFVjF3MDcwtjAwBNvkKqYQAAAA==
   </link>
  </item>
  <item>
   <title>
    media&lt;SUP&gt;2&lt;/SUP&gt;
   </title>
   <link>
    http://openapi.naver.com/l?AAACupLEi1Tc1LyUxWK81MsTUxMzK1UCssTS2qtM1NTclMVMsoSk2zzSgpKVA1dlQ1cgMisGq9vMSy1CK95PxcVBFVY7eU/OTMFFVjF3MDcwsTAwCKKAPlYQAAAA==
   </link>
  </item>
 </channel>
</rss></rss>
<?xml version="1.0" encoding="UTF-8"?>
<error xmlns="naver:openapi"> 전송된 요청을 수행하는 동안 다음과 같은 에러가 발생하였습니다.
	<error_code>020</error_code>
	<message>Unregistered key (등록되지 않은 키입니다.)</message>
</error>

ElementTree

import xml.etree.ElementTree as ET
...
ndicResult = ET.XML(xml_source_string)
#find error
if ndicResult.tag == '{naver:openapi}error':
    print ndicResult.text
    print "%s: %s"%(ndicResult.find('{naver:openapi}error_code').text, ndicResult.find('{naver:openapi}message').text)
elif ndicResult.tag == 'rss':
#find channel
    ndicChann = ndicResult[0] #ndicResult.find('channel')
    ndicItems = (i for i in ndicChann if i.tag=="item")
    ndicLinks = map(lambda x: x.find('link').text, ndicItems)
xml_parsing.txt · Last modified: 2013/08/03 05:04 (external edit)