2016-07-28 23 views
0

データフォーマットは以下のようになります。Pythonで特別なXMLフォーマットを解析するにはどうすればよいですか?

<doc> 
<url>i am url</url> 
<docno>01a064132d932277</docno> 
<contenttitle>title</contenttitle> 
<content>whatever the content is </content> 
</doc> 

... 

<doc> 
<url>i am another url</url> 
<docno>01a064132d932277</docno> 
<contenttitle>title</contenttitle> 
<content>whatever the content is </content> 
</doc> 

ので、文書全体が小さなXML形式のコンテンツの多くが含まれている、より具体的に、それはすべての6行は、XML形式が来るのです。私はlxmlまたはBeautiful Soupを使用しようとしますが、毎回6行を読み込むAPIは提供していません。

また、フォルダに複数の.txtがあります。

どうすれば問題を解決できますか?

+1

可能な複製[lxml.etree.iterparseを使用して単一のファイルで複数のXML宣言を解析する](http://stackoverflow.com/questions/5651219/parse-several-xml-declarations-in-a-single -file-by-means-of-lxml-etree-iterparse) –

+1

これを修正する適切な方法は、データソースを修正して、適切に解析可能なファイルを生成することです。その間に、それが不可能なら、あなたはしばしば@LarsHが言ったことをすることができます。これが本当に大きなログ/ダンプファイルなので、ファイル全体がメモリに収まらない場合は、lxmlのFeedParserを調べてインクリメンタルに解析することをお勧めします。 –

+0

レーシックの答えは十分です、私は思います –

答えて

3

あなた可能性:

  • は、文字列に(生のテキスト、未解析の)ファイルを読み込む
  • 追記先頭に「<root>」と
  • が、その後持っている文字列の最後に「</root>」 BeautifulSoupは結果の文字列を解析します。

元の<doc>要素のそれぞれは、<root>の多くの子の1つになります。

関連する問題