7

必要なのは、対応するタグのテキストを取得してデータベースに保持することだけです。xml ファイルが大きい (4.5 GB) ため、sax を使用しています。文字メソッドを使用してテキストを取得し、辞書に入れました。しかし、endElementメソッドでテキストを印刷すると、テキストの代わりに新しい行が表示されます。

これが私のコードです:

def characters(self,content):
   text = unescape(content))
   self.map[self.tag]=text

def startElement(self, name, attrs):
   self.tag = name

def endElement (self, name)
   if (name=="sometag")
   print self.map[name]

前もって感謝します。

4

1 に答える 1

8

タグ内のテキストは、SAXプロセッサによってチャンク化されます。characters複数回呼び出される場合があります。

次のようなことをする必要があります。

def startElement(self, name, attrs):
    self.map[name] = ''
    self.tag = name

def characters(self, content):
    self.map[self.tag] += content

def endElement(self, name):
    print self.map[name]
于 2010-02-14T20:18:20.660 に答える