2017-10-08 4 views
-1

質問:

1)どのように効果的にXMLファイルをクリーンアップしますか?私は、テキストフィールドとタイトルフィールド以外の無関係なものを削除したいと思います。

ページの例は次のようになります。

<page> 
<title>Afrika</title> 
<ns>0</ns> 
<id>2</id> 
<revision> 
    <id>1428708</id> 
    <parentid>1391377</parentid> 
    <timestamp>2016-03-06T14:00:12Z</timestamp> 
    <contributor> 
    <username>SpesBona</username> 
    <id>2720</id> 
    </contributor> 
    <comment>Uitgebrei</comment> 
    <model>wikitext</model> 
    <format>text/x-wiki</format> 
    <text xml:space="preserve"> 
    '''Afrika''' is die wêreld se tweede grootste [[kontinent]] in sowel 
    oppervlakte as bevolking. Saam met die eilande beslaan dit ongeveer 
    30,221,532km² wat 20,3% van die totale landoppervlakte van die [[aarde]] 
    is en dit word bewoon deur meer as 1 miljard mense - ongeveer 'n sewende 
    van die wêreldbevolking. 
    </text> 
</revision> 

好ましくは、私が必要となる唯一の情報は、次のようになります。しかし

<page> 
    <title>Afrika</title> 
    <text xml:space="preserve"> 
    '''Afrika''' is die wêreld se tweede grootste [[kontinent]] in sowel 
    oppervlakte as bevolking. Saam met die eilande beslaan dit ongeveer 
    30,221,532km² wat 20,3% van die totale landoppervlakte van die [[aarde]] 
    is en dit word bewoon deur meer as 1 miljard mense - ongeveer 'n sewende 
    van die wêreldbevolking. 
    </text> 
</page> 

。 XMLを使用したことは一度もありませんし、以前にXML解析を行ったこともありません。そのため、このような大きなファイルを使ってこれを行う方法が少し失われています。

正規表現を試してみましたが、XML処理モジュールを使用してPythonでこれを行う方法があるかどうかを知りたいのですが?

2)大量のテキストファイルを検索する際に最適なデータ構造は何でしょうか?クリーンなデータを使って新しいファイルを作成するか、ルックアップのためにMongoDBのようなデータベースを使用することをお勧めしますか?

+1

正規表現は、XMLを解析するための間違ったツールです。 XPathを使用してXMLの部分をナビゲートします(ターゲットテキストに到達したら正規表現を使用します)。本当に必要なのは、ソースXMLファイルに基づいて別のXMLファイルを作成することです.XSLTを使用してください。テキストを保存するために使用するものは、設計上の問題です。答えには、より多くの制約と目標を記述する必要があります。しかし、このような精緻化を行っても、あなたの質問はこのサイトではまだ広すぎるでしょう**。 – kjhughes

答えて

0

あなたがPythonで何か経験があるなら、xmlを解析するためにlxmlパーサでbeautifulsoupライブラリを使うべきです。それは非常に簡単に、直感的にタグを参照できるようになります。 http://www2.hawaii.edu/~takebaya/cent110/xml_parse/xml_parse.html

大きなデータサイズを処理するには、各ページを別のファイルに分けて、globを使ってPythonにロードし、一度に1ファイルずつ解析することができます。 Find all files in a directory with extension .txt in Python

最終的なデータ構造については、mongodbはかなり良いと思います。全文検索をしたい場合は、テキストインデックスを作成することを忘れないでください。 https://docs.mongodb.com/manual/core/index-text/

関連する問題