Извлечение xml из текстового файла - PullRequest
1 голос
/ 28 апреля 2020

Я пытаюсь извлечь часть кода xml из текстового файла в python. Текущий txt-файл, который я использую, взят из базы данных edgar и содержит несколько представлений 10-тысячного отчета в одном txt-файле с html, затем xml, а затем с некоторыми другими представлениями, такими как PDF.

Если кто-нибудь знает способ извлечь это xml, чтобы я мог использовать его теги, я был бы очень признателен.

Вот пример текстового файла, о котором я говорю: https://www.sec.gov/Archives/edgar/data/51143/000005114313000007/0000051143-13-000007.txt

Ответы [ 2 ]

0 голосов
/ 01 мая 2020

Как насчет этого?

def getData(xml):
  # Processing your XML data after block reading. 
  pass
with open('0000051143-13-000007.txt', 'r') as file: # data.xml is your xml file path
  lines = []
  flag = False
  for line in file:
    if line.find('</XBRL>')>=0:
      getData("".join(lines))
      flag = False
      lines = []
    if flag or line.find('<?xml ')>=0:
      flag = True
      lines.append(line)
0 голосов
/ 28 апреля 2020

Вы можете попробовать использовать:

import requests, re

text = requests.get("https://www.sec.gov/Archives/edgar/data/51143/000005114313000007/0000051143-13-000007.txt").text
for xml in re.finditer(r"<FILENAME>([^\s]+.xml)\s<DESCRIPTION>[^\s]+\s<TEXT>\s<XBRL>(.*?)</XBRL>", text, re.IGNORECASE | re.DOTALL | re.MULTILINE):
    xml_filename = xml.group(1)
    xml_content = xml.group(2)
    with open(xml_filename, "w") as w:
        w.write(xml_content)

Демо

...