Python入門から応用までの学習サイト


XML解析 (パーサ)

前項ではHTMLを解析しました。本項ではPythonXML解析 (パース)を行います。

DOMを用いて指定のXMLファイルを解析します。まずは下記のようなサンプルファイルを用意しましょう。


-- ファイル名:sample.xml --

<?xml version="1.0" encoding="UTF-8"?>
<bookmark>
    <site>
        <name>google</name>
        <url>http://www.google.co.jp/</url>
    </site>
    <site>
        <name>yahoo</name>
        <url>http://www.yahoo.co.jp/</url>
    </site>
    <site>
        <name>python</name>
        <url>http://www.python-izm.com/</url>
    </site>
</bookmark>


次は解析プログラム本体です。 7行目から18行目でファイル内の全ての要素を出力し、22行目、23行目で指定の要素を取得しています。

# -*- coding: utf-8 -*- 

import xml.dom.minidom

dom = xml.dom.minidom.parse('sample.xml')

print dom.documentElement.tagName
for node in dom.documentElement.childNodes:
    if node.nodeType == node.ELEMENT_NODE:
        print '  ' + node.tagName

        for node2 in node.childNodes:
            if node2.nodeType == node2.ELEMENT_NODE:
                print '    ' + node2.tagName

                for node3 in node2.childNodes:
                    if node3.nodeType == node3.TEXT_NODE:
                        print '      ' + node3.data

print '-------------------------------------'

for url in dom.getElementsByTagName('url'):
    print url.firstChild.data

--実行結果--

bookmark
  site
    name
      google
    url
      http://www.google.co.jp/
  site
    name
      yahoo
    url
      http://www.yahoo.co.jp/
  site
    name
      python
    url
      http://www.python-izm.com/
-------------------------------------
http://www.google.co.jp/
http://www.yahoo.co.jp/
http://www.python-izm.com/



Python
スタートブック


入門 Python 3


Effective
Python


退屈なことは
Pythonにやらせよう

 
 
 

スレッドプログラミングも可能です!

▶応用編:スレッド



確かな力が身につく
Python「超」入門




P  R