さまざまなフォーマットのXML文書をMySQLデータベースのレコードに毎日処理する必要があります。各XML文書から私が必要とするデータには、必要のない多くのデータが散在しており、各文書のノード名は異なります。たとえば、次のようにXMLを良い形でMySQLに処理する
ソース#1:
<object id="1">
<title>URL 1</title>
<url>http://www.one.com</url>
<frequency interval="60" />
<uselessdata>blah</uselessdata>
</object>
<object id="2">
<title>URL 2</title>
<url>http://www.two.com</url>
<frequency interval="60" />
<uselessdata>blah</uselessdata>
</object>
ソース#2:
<object">
<objectid>1</objectid>
<thetitle>URL 1</thetitle>
<link>http://www.one.com</link>
<frequency interval="60" />
<moreuselessdata>blah</moreuselessdata>
</object>
<object">
<objectid>2</objectid>
<thetitle>URL 2</thetitle>
<link>http://www.two.com</link>
<frequency interval="60" />
<moreuselessdata>blah</moreuselessdata>
</object>
...私は、オブジェクトのID、間隔、およびURLを必要としています。アプローチのため
私のアイデアがあります:
1)各XML文書を解析し、反復的に別々の機能は、各文書を解析持っている機能
2)内からSQLクエリを作成するために別の機能を持ちます各オブジェクトを自分のオブジェクトクラスに反復的に追加し、SQLメソッドをクラスメソッドで実行させます。
3.)XSLTを使用してすべてのドキュメントを共通のXML形式に変換し、そのドキュメントのパーサを作成します。
ほとんどの場合、1MB未満となるため、XML文書自体はそれほど大きくはありません。私はその構造が頻繁に変わることは予想していませんが、時間が経つにつれて追加のソースを追加したり削除したりする可能性が強くなっています。私はすべてのアイデアを公開しています。
また、上記のXMLサンプルがマングリングされていてもごめんなさい...大したことではありません。各ドキュメントのノード名が異なることを示すのは大まかなことです。
+1:あなたのケースでは、異なるXMLドキュメントは本当にただです異なるタグ名。これらは、次に、ElementTree findおよびfindall関数で使用するXPath文字列を変更するだけです。異なるXML解析オプションは本当に簡単です。 –