質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Q&A

解決済

1回答

1365閲覧

pythonでxml内のデータを取得

YoheiShimomura

総合スコア7

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

0グッド

0クリップ

投稿2015/07/07 08:44

編集2015/07/07 09:28
<?xml version="1.0" encoding="UTF-8" ?> <Results xmlns="jws"> <APIVersion>1.0</APIVersion> <Area> <Region cd="40" name="山陰・山陽"> <Prefecture cd="310000" name="鳥取県"> <LargeArea cd="310200" name="鳥取・岩美"> <SmallArea cd="310202" name="鳥取" /> <SmallArea cd="310205" name="岩美" /> <SmallArea cd="310208" name="八頭" /> <SmallArea cd="310211" name="浜村・鹿野" /> </LargeArea> <LargeArea cd="310500" name="倉吉・三朝・湯梨浜"> <SmallArea cd="310502" name="はわい・東郷" /> <SmallArea cd="310505" name="三朝" /> <SmallArea cd="310508" name="倉吉・関金" /> </LargeArea> <LargeArea cd="310800" name="米子・大山"> <SmallArea cd="310802" name="米子・皆生・境港" /> <SmallArea cd="310805" name="大山" /> </LargeArea> </Prefecture> <Prefecture cd="320000" name="島根県"> <LargeArea cd="320100" name="松江・安来・玉造・奥出雲"> <SmallArea cd="320102" name="松江・美保関・玉造" /> <SmallArea cd="320105" name="安来" /> <SmallArea cd="320111" name="奥出雲・雲南" /> </LargeArea> <LargeArea cd="320400" name="出雲・大田・石見銀山"> <SmallArea cd="320408" name="出雲・大社・湯の川" /> <SmallArea cd="320411" name="大田・温泉津" /> </LargeArea> <LargeArea cd="320500" name="益田・浜田・津和野"> <SmallArea cd="320505" name="浜田・江津・有福" /> <SmallArea cd="320508" name="津和野・益田" /> </LargeArea> <LargeArea cd="320800" name="隠岐島"> <SmallArea cd="320802" name="島前" /> <SmallArea cd="320805" name="島後" /> </LargeArea> </Prefecture> <Prefecture cd="330000" name="岡山県"> <LargeArea cd="330200" name="岡山・玉野・牛窓"> <SmallArea cd="330202" name="岡山・玉野" /> <SmallArea cd="330205" name="牛窓・日生" /> </LargeArea> <LargeArea cd="330500" name="倉敷・総社・井笠"> <SmallArea cd="330502" name="倉敷・児島・鷲羽山" /> <SmallArea cd="330505" name="総社・井原・笠岡" /> </LargeArea> <LargeArea cd="330800" name="津山・美作三湯・蒜山"> <SmallArea cd="330802" name="湯原・蒜山高原" /> <SmallArea cd="330805" name="津山・奥津" /> <SmallArea cd="330808" name="美作・湯郷" /> </LargeArea> <LargeArea cd="331100" name="高梁・新見・吉備高原"> <SmallArea cd="331102" name="高梁・川上・成羽" /> <SmallArea cd="331105" name="新見・阿哲" /> </LargeArea> </Prefecture> <Prefecture cd="340000" name="広島県"> <LargeArea cd="340300" name="福山・竹原・呉"> <SmallArea cd="340302" name="福山・尾道・しまなみ" /> <SmallArea cd="340305" name="三原・竹原" /> <SmallArea cd="340308" name="呉・江田島" /> </LargeArea> <LargeArea cd="340600" name="庄原・三次・芸北"> <SmallArea cd="340602" name="庄原・帝釈峡・神石高原" /> <SmallArea cd="340605" name="三次" /> <SmallArea cd="340608" name="芸北" /> </LargeArea> <LargeArea cd="340900" name="広島・宮島"> <SmallArea cd="340902" name="広島" /> <SmallArea cd="340905" name="宮島・廿日市" /> </LargeArea> </Prefecture> <Prefecture cd="350000" name="山口県"> <LargeArea cd="350300" name="岩国・柳井・周南"> <SmallArea cd="350302" name="岩国" /> <SmallArea cd="350305" name="柳井・周防大島" /> <SmallArea cd="350308" name="周南・湯野" /> </LargeArea> <LargeArea cd="350600" name="山口・秋芳"> <SmallArea cd="350602" name="山口・湯田・防府" /> <SmallArea cd="350605" name="秋芳" /> </LargeArea> <LargeArea cd="351000" name="萩・長門"> <SmallArea cd="351002" name="萩" /> <SmallArea cd="351005" name="長門" /> </LargeArea> <LargeArea cd="351300" name="下関・宇部"> <SmallArea cd="351302" name="宇部" /> <SmallArea cd="351305" name="下関・長府・川棚" /> </LargeArea> </Prefecture> </Region> </Area> </Results>

上記のようなxml文からSmallArea内のcdをpythonで取得したいと考えているのですが、
何か良い方法はないでしょうか?

よろしくお願いします。

追記:「じゃらんWebサービス エリア検索API」のサンプルリクエストから引用したものです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ElementTreeで実装してみようと思ったのですが、
上手く行かなかったのでminidomでやってみました。

全件取得の例です。
記載のデータをdata.xmlで保存してカレントディレクトリに配置しています。

lang

1from xml.dom import minidom 2 3xml = minidom.parse('data.xml') 4 5# 全ての SmallArea を取得 6list = xml.getElementsByTagName('SmallArea') 7 8for item in list: 9 print item.attributes['cd'].value, item.attributes['name'].value

参考: How do I parse XML in Python? - Stack Overflow

投稿2015/07/07 14:16

ryunix

総合スコア1656

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YoheiShimomura

2015/07/09 04:49

解決しました! ありがとうございます(_ _)
ryunix

2015/07/09 05:21

お役に立ててなによりです :)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問