2

XML のデータを単純化して、単一のテーブル、つまり csv として読み取ることができるようにする必要があります。ElementTree を使用した Python 2.7 の例をいくつか見つけましたが、これまでのところ、最上位レベルの要素を収集するだけでなく、ツリーのさらに下の部分で機能するように調整することはできませんでした。ただし、行ごとに最高レベルの要素を繰り返し、残りを取得します。

RTFM が可能であり、そうすべきであることはわかっていますが、悲しいことに、問題をできるだけ早く解決する必要があります。

リンクされたxsdファイルが役立つかもしれませんか?

私のデータは次のようになります

<!-- MoneyMate (tm) XMLPerfs Application version 1.0.1.1 - Copyright © 2000 MoneyMate Limited. All Rights Reserved. MoneyMate ® -->
<!-- Discrete Perfs for 180 periods for Monthly frequency -->
<MONEYMATE_XML_FEED xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://mmia2.moneymate.com/xml/MoneyMateComplete.xsd" version="1.0" calcCurrency="SEK">
<TYPES>
<TYPE typeCountry="SE" typeId="85" typeName="string" calcToDate="2013-07-16">
<COMPANIES>
<COMPANY companyId="25000068" companyName="string"/>
…

<CATEGORIES>
<CATEGORY categoryId="1101" categoryName="Aktie -- Asien">
<FUNDS>
<FUND fundId="6201" fundName="string" fundCurrency="GBP" fundCompanyId="25000068"><PERFORMANCES><MONTHLYPERFS><PERFORMANCEMONTH perfEndMonth="2006-05-31" perfMonth="-0.087670"/><PERFORMANCEMONTH>
…
</PERFORMANCES></FUND></FUNDS>
</CATEGORY>
<CATEGORY categoryId="13" categoryName="Räntefonder">
<FUNDS></FUNDS>
</CATEGORY>
</CATEGORIES>
</TYPE>
</TYPES>
</MONEYMATE_XML_FEED>

したがって、FUNDS のみのデータを含む表が表示されることを願っていますが、次のようになります。

fundid   fundName   fundCurrency   fundCompanyId   perfEndMonth   perfMonth
…        …          …              …               …              …

そしてcsvファイルでは、フォーマットを壊したくありませんでした。

また、perfMonth が重要であることに注意してください。コードは、データの例で上記のボックスにラップされていません。

4

1 に答える 1