2

How can I convert xml to Python data structure using lxml?

I have searched high and low but can't find anything.

Input example

<ApplicationPack>
  <name>Mozilla Firefox</name>
  <shortname>firefox</shortname>
  <description>Leading Open Source internet browser.</description>
  <version>3.6.3-1</version>
  <license name="Firefox EULA">http://www.mozilla.com/en-US/legal/eula/firefox-en.html</license>
  <ms-license>False</ms-license>
  <vendor>Mozilla Foundation</vendor>
  <homepage>http://www.mozilla.org/firefox</homepage>
  <icon>resources/firefox.png</icon>
  <download>http://download.mozilla.org/?product=firefox-3.6.3&amp;os=win&amp;lang=en-GB</download>
  <crack required="0"/>
  <install>scripts/install.sh</install>
  <postinstall name="Clean Up"></postinstall>
  <run>C:\\Program Files\\Mozilla Firefox\\firefox.exe</run>
  <uninstall>c:\\Program Files\\Mozilla Firefox\\uninstall\\helper.exe /S</uninstall>
  <requires name="autohotkey" />
</ApplicationPack>
4

2 に答える 2

5
>>> from lxml import etree
>>> treetop = etree.fromstring(anxmlstring)

文字列内の xml を Python データ構造に変換します。

>>> othertree = etree.parse(somexmlurl)

somexmlurl、ローカル XML ファイルへのパスまたは Web 上の XML ファイルの URL です。

これらの関数が提供する Python データ構造 (モジュール名の由来である「要素ツリー」と呼ばれる) は、ここetreeで十分に文書化されています。問題の Python データ構造がサポートするすべてのクラス、関数、メソッドなどです。ちなみに、これは Python 標準ライブラリでサポートされているものとほぼ同じです。

の Python データ構造が必要な場合は、上記のように lxml が返す Python データ構造を調べて、収集した情報に基づいて別のデータ構造を自分で構築する必要があります。lxml は、返される解析済み構造内の情報を検索するためのいくつかのヘルパーを提供することを除いて、特にあなたを助けることはできません.

于 2010-05-01T03:27:19.263 に答える
0

探しているデータ構造の種類は完全には明らかではありませんが、 XML を を介してリストの Python ディクショナリにlxml.etree変換するコード サンプルへのリンクを次に示します。

于 2010-05-01T08:20:42.330 に答える