I am a python newbie. I am trying to parse through an xml file and count all text inputs that are all numeric including approximated values using e- or e+. E.g. Given the psuedo code below (jerry.xml),
<data>
<country name="Liechtenstein">
<rank updated="yes">2</rank>
<language>english</language>
<currency>1.21$/kg</currency>
<gdppc>141100</gdppc>
<gdpnp>2.304e+0150</gdpnp>
<neighbor name="Austria" direction="E"/>
<neighbor name="Switzerland" direction="W"/>
</country>
<country name="Singapore">
<rank updated="yes">5</rank>
<language>english</language>
<currency>4.1$/kg</currency>
<gdppc>59900</gdppc>
<gdpnp>5.2e-015</gdpnp>
<neighbor name="Malaysia" direction="N"/>
</country>
I would like to return 6, having counted 2, 141100, 2.304e+0150, 5, 59900 and 5.2e-015 while omitting english, 1.21$/kg or 4.1$/kg.
Any help would be appreciated. For now I have the following.
import xml.etree.ElementTree as ET
tree = ET.parse("jerry.xml")
root = tree.getroot()
for text in root.itertext():
print repr(text)
charlie = file.writelines(root.itertext())
count = sum(element.firstChild.nodeValue.find(r'\d+$'') for element in xmldoc.getElementsByTagName('jerry.xml'))