2011-10-05 1 views
1

Im пытается прочитать XML-файл из API Google Адресов и добавить в структуру, но им возникли некоторые проблемы с C#, потому что им новое на это ... У меня есть XML-файл, как это:Как узнать, что такое nodeType?

<PlaceSearchResponse> 
<status>OK</status> 
<result> 
    <name>Williamsburg</name> 
    <type>locality</type> 
    <type>political</type> 
    <icon>http://maps.gstatic.com/mapfiles/place_api/icons/geocode-71.png</icon> 
    <reference>CkRAAAAAUhZG...Yy0b4-sd1zCUu9P8</reference> 
</result> 
<result> 
    <name>Greenpoint</name> 
    <vicinity>New York</vicinity> 
    <type>neighborhood</type> 
    <type>political</type> 
    <icon>http://maps.gstatic.com/mapfiles/place_api/icons/geocode-71.png</icon> 
    <reference>CkQ-AAAAHIDo...nYmSR8l52FmkMH6c</reference> 
    <name>Peter Luger Steakhouse</name> 
    <vicinity>Broadway, Brooklyn</vicinity> 
    <type>restaurant</type> 
    <type>food</type> 
    <type>establishment</type> 
    <icon>http://maps.gstatic.com/mapfiles/place_api/icons/restaurant-71.png</icon> 
    <reference>ClRBAAAATIpR...mHSxoyiRcr_FVuww</reference> 
</result> 
    ...additional results... 
</PlaceSearchResponse> 

И мне нужно зациклить все узлы и добавить в список. Что-то вроде этого:

while (nodetype == "type") 
{ 
    PlaceType t = new PlaceType(); 
    t.name = x.Element("type").Value; 
    place.types.Add(t); 
} 

Кроме того, мой класс Место:

public class Place 
{ 
    public string name { get; set; } 
    public List<PlaceType> types { get; set; } 
    public string vicinity { get; set; } 
    public string icon { get; set; } 
    public string reference { get; set; } 
} 

ответ

1

Ниже будет вытаскивать все типы в массив строк.

string[] valuesOfType = myXElement.Elements() 
    .Where(e => e.Name.LocalName == "type") 
    .Select(e => e.Value).ToArray();