

DDBJのDNA配列の編集がしたいです。  
xml形式でダウンロードすることができるのですが,xmlの構造について詳しくないので  
よくわからない部分があります。

DDBJでダウンロードしたXMLファイルの形式の一部を下に示します。  
[![画像の説明をここに入力](https://i.stack.imgur.com/RxpST.png)](https://i.stack.imgur.com/RxpST.png)

このxmlファイルの形式は情報の名前と値が別々のタグに囲まれているみたいなのですが  
普通(自分が調べたところ)のxmlファイルだとタグの中に属性として名前を入れる感じですよね？？

このような形式にするメリットなどあるのでしょうか？  
また,タグの中に属性が入っている場合のパースしかしたことがないので  
よさそうなパース方法など教えていただけないでしょうか?  
プログラミング言語としてはPythonを想定しています。


CC BY-SA 3.0
2017-11-07T10:53:46.323
39380
2017-12-19T11:00:32.867
24896
question
python xml
xmlファイルのパースについて


この形式のメリットがよく分かりませんが、以下のようなコードでパースできるかもしれません。上に表したファイルの一部を "dbbj_example.xml"
に保存しました。

[code]

    >>> 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']
    
[/code]

lxml辞書のetreeモジュールとxpath構文をつかいました。

lxml: <http://lxml.de/index.html>  
xpath構文の例:
<https://docs.python.org/3/library/xml.etree.elementtree.html#elementtree-
xpath>


CC BY-SA 3.0
2017-12-19T11:00:32.867
40384
2017-12-19T11:00:32.867
26701
39380
answer