Файл можно скачать здесь: https://easyupload.io/dhg1ae Изменить root import_ xml = 'root_donload / enwiki-latest-pages-статьи-multistream14. xml -p7697595p7744800'
У меня есть python программа, которая анализирует xml и печатает ...
from lxml import etree
import csv
import wikitextparser as wtp
import re
lista = []
def set_wikilinks(self):
tree = etree.parse(self.input_xml)
root = tree.getroot()
# iterate through all the text
for page in root.findall(".//page", namespaces=root.nsmap):
title = page.findall(".//title", namespaces=page.nsmap)
title = title[0].text
for text in page.findall(".//text", namespaces=page.nsmap):
if text.text is None or len(text.text.strip())==0:
continue
parsed = wtp.parse(text.text)
for section in parsed.sections:
section_title = section.title.strip()
section_text = section.string.strip()
for match in re.findall('San Francisco Chronicle', section_text):
print('Found "%s"' % section_text)
input_xml = '/Users/prosy/.keras/datasets/enwiki-latest-pages-articles1.xml-
p1p30303/enwiki-latest-pages-articles1.xml-p1p30303'
processor = WikiLinkTextProcessor(input_xml)
processor.set_wikilinks()
Когда я ищу слово "Хроники Сан-Франциско", он показывает следующий текст, два абзаца :
===2000 to present===
Passing as white in the 21st-century is more controversial: it is often seen as a rejection of
blackness, family and culture.</ref>
===Passing as Indigenous Americans===
[[Image:Grey Owl.jpg|right|thumb|Portrait of Archibald Belaney, who [[Cultural
[[First Nations]] people, passing as an indigenous person for
many years.]]accessdate=January 2, 2016 |work=San Francisco Chronicle |date=August 15, 2015}}</ref>"
Но мне просто нужно, чтобы он показал
===Passing as Indigenous Americans===
[[Image:Grey Owl.jpg|right|thumb|Portrait of Archibald Belaney, who [[Cultural
[[First Nations]] people, passing as an indigenous person for
many years.]]accessdate=January 2, 2016 |work=San Francisco Chronicle |date=August 15, 2015}}</ref>"
Вывод должен быть одним абзацем, где он появляется с заголовком. Как это можно сделать? Thx.
ОБНОВЛЕНИЕ: файл XML является mediaWiki: https://dumps.wikimedia.org/enwiki/latest/enwiki-latest-pages-articles1.xml-p1p30303.bz2 Интернет: https://en.wikipedia.org/wiki/Air_Corps_Tactical_School Добавить: root с файлом xml
Я делаю два разных поиска: первый, который я ищу по названию, и его вывод - это заголовок и параграф, который работает.
Второй, который я ищу прямо в тексте, поэтому у меня есть заголовок и все абзацы, и мне нужен только тот абзац, в котором найдено ключевое слово. Когда я ищу по section.title, тогда у меня есть параграф, потому что он есть.
Первый и второй выходы должны быть равны.
Ouput: