Как передать XML-файл в качестве параметра в метод Python? - PullRequest
0 голосов
/ 06 сентября 2018

Я пишу класс в Python для анализа данных из XML, я хочу передать имя файла XML в качестве параметра, чтобы я мог инициализировать дерево и корень в конструкторе. Как мне это сделать? Вот мой код:

import xml.etree.ElementTree as ET

class cParser:

def __init__(self, file):
  tree = ET.parse(self.file)
  root = tree.getroot()
def getFilename():
   filename = root.attrib['filename']
   print("Filename is: %s" %(filename))

c1 = cParser('pythonxml.xml')
c1.getFilename()

1 Ответ

0 голосов
/ 06 сентября 2018

Попробуйте сначала исправить объявление class:

import xml.etree.ElementTree as ET

class cParser:
    def __init__(self, file):
      tree = ET.parse(file)  # no need for self here
      self.root = tree.getroot()  # needs self here 

    def getFilename(self):  # missed self in arg list
       filename = self.root.attrib['filename']  # use self.root from init
       print("Filename is: %s" % filename)

c1 = cParser('pythonxml.xml')  # not a pythonic name for a class though
c1.getFilename()  # and not a pythonic name for method
...