質問: DDBJのDNA配列の編集がしたいです。 xml形式でダウンロードすることができるのですが,xmlの構造について詳しくないので よくわからない部分があります。 DDBJでダウンロードしたXMLファイルの形式の一部を下に示します。 ![画像の説明をここに入力](https://i.stack.imgur.com/RxpST.png) このxmlファイルの形式は情報の名前と値が別々のタグに囲まれているみたいなのですが 普通(自分が調べたところ)のxmlファイルだとタグの中に属性として名前を入れる感じですよね?? このような形式にするメリットなどあるのでしょうか? また,タグの中に属性が入っている場合のパースしかしたことがないので よさそうなパース方法など教えていただけないでしょうか? プログラミング言語としてはPythonを想定しています。
回答: この形式のメリットがよく分かりませんが、以下のようなコードでパースできるかもしれません。上に表したファイルの一部を "dbbj_example.xml" に保存しました。 ``` >>> import lxml.etree >>> dbbj_xml = lxml.etree.parse("dbbj_example.xml") >>> dbbj.xpath('//INSDQualifier_name[text()="organism"]/..//INSDQualifier_value')[0].text Output: 'Acropora cervicornis' >>> [x.text for x in dbbj.findall('.//INSDQualifier_name')] Output: ['organism', 'organelle', 'mol_type', 'db_xref'] ``` lxml辞書のetreeモジュールとxpath構文をつかいました。 lxml: xpath構文の例: