0
両方のプログラムが同じXMLファイルを読み取ります。最初のプログラムはすべてのデータを<text></text>
タグの間にコピーします。そして、第2のプログラムは、<text></text>
タグから制限されたデータをコピーします。コーディングforループ
データを限定したいです。だから、最初のプログラムでは、このステートメントを使用することが可能である:
m = re.search(r'(?ms).*?{{(Infobox film.*?)}}', t.text)
まずプログラム
from lxml import etree
doc = etree.parse('file.xml')
def first(seq,default=None):
for item in seq:
return item
return default
NSMAP=dict(mw="http://www.mediawiki.org/xml/export-0.5/")
for i,page in enumerate(doc.xpath('/mw:mediawiki/mw:page',namespaces=NSMAP)):
text = first(page.xpath('./mw:revision/mw:text/text()',namespaces=NSMAP))
id = first(page.xpath('./mw:id/text()',namespaces=NSMAP))
title = first(page.xpath('./mw:title/text()',namespaces=NSMAP))
print " %s" % (text)
、第2のプログラム
import re
from xml.etree import ElementTree
with open('file.xml') as f:
xml = ElementTree.parse(f)
for t in xml.findall('//{http://www.mediawiki.org/xml/export-0.5/}text'):
print '===================='
m = re.search(r'(?ms).*?{{(Infobox film.*?)}}', t.text)
if m:
print m.group(1)
UPDATE:私を助けてください。他の選択肢はありますか?私はあなたが最初のプログラムの最後に次の操作を行うことができないだろう、なぜ何らかの理由で表示されていない
その作業。どうもありがとうございます。私はPythonの初心者です。勉強中です。 –