In this XML 1 Find the Score problem You are given a valid XML document, and you have to print its score. The score is calculated by the sum of the score of each element.

HackerRank XML 1 - Find the Score solution in python


Problem solution in Python 2 programming.

n = int(raw_input())
xml = ""
for i in range(n):
    xml += raw_input()
import xml.etree.ElementTree as etree
tree = etree.ElementTree(etree.fromstring(xml))
score = 0
for elem in tree.iter():
	score += len(elem.attrib)
print score


Problem solution in Python 3 programming.

N = int(input())

def count_of_attr(root):
    count = len(root.attrib)
    for child in root:
        count += count_of_attr(child)
    return count

import xml.etree.ElementTree as etree
count = 0
xml = ''
for i in range(N):
    xml += input()

tree = etree.ElementTree(etree.fromstring(xml))
root = tree.getroot()
count = count_of_attr(root)
    
print(count)


Problem solution in pypy programming.

def get_attr_number(node):
    # your code goes here
    count = len(node.attrib)
    for x in node:
        count += get_attr_number(x)
    return count


Problem solution in pypy3 programming.

def get_attr_number(node):
    return len(node.attrib) + sum(get_attr_number(child) for child in node)