input: Write a function to parse XML text into Tag objects.
  assert len(parse_xml('<root><item id="1"><value value="a"/></item></root>')) == 1
  assert parse_xml('<root><item id="1"><value value="a"/></item></root>')[0].values == ["a"]
  assert parse_xml('<root><item id="1"><value value="a"/><value value="b"/></item></root>')[0].values == ["a", "b"]
output: def parse_xml(xml_text):
      import xml.etree.ElementTree as ET
      class Tag:
          def __init__(self, tag, attributes=None, values=None):
              self.tag = tag
              self.attributes = attributes if attributes else {}
              self.values = values if values else []
              
      def parse_element(element):
          tag = Tag(element.tag, element.attrib)
          for child in element:
              tag.values.append(child.attrib.get('value'))
          return tag
  
      root = ET.fromstring(xml_text)
      return [parse_element(child) for child in root]