private IEnumerable<GoogleAddressComponent> ParseComponents(XPathNodeIterator nodes)
{
while (nodes.MoveNext())
{
XPathNavigator nav = nodes.Current;
string longName = (string)nav.Evaluate("string(long_name)");
string shortName = (string)nav.Evaluate("string(short_name)");
var types = ParseComponentTypes(nav.Select("type")).ToArray();
if (types.Any()) //don't return an address component with no type
yield return new GoogleAddressComponent(types, longName, shortName);
}
}