2010-05-10 4 views
0

Here Я имел очень похожую структуру XML, но теперь у меня есть это:LINQ для запроса XML

<Fields> 
    <Company>My Company</Company> 
    <Address2>Villa at beach</Address2> 
    <Email2>[email protected]</Email2> 
    <Mobile>333-888</Mobile> 
    <ContactMethod>Facebook</ContactMethod> 
    ...etc... 
</Fields> 

А теперь мне нужен такой же результат, как на данной ссылке: Компания: My Company
ADDRESS2: Вилла на пляже
Email2: [email protected]

Каков будет запрос?

Спасибо,
Ile

ответ

1

Предполагая, что вы хотите, чтобы результаты как словарем вы могли бы сделать это:

 string xml = 
@"<Fields> 
    <Company>My Company</Company> 
    <Address2>Villa at beach</Address2> 
    <Email2>[email protected]</Email2> 
    <Mobile>333-888</Mobile> 
    <ContactMethod>Facebook</ContactMethod> 
</Fields>"; 

     XDocument doc = XDocument.Parse(xml); 
     XElement fields = doc.Root; 

     Dictionary<string, string> result = fields.Elements().ToDictionary(e => e.Name.LocalName, e => e.Value); 

     foreach (var i in result) 
     { 
      Console.WriteLine(i.Key + ": " + i.Value); 
     } 
+0

Привет, спасибо за ответ, но это не то, что я ищу. Вы жестко закодировали имена полей, но мне нужно это для динамического определения имени и значения поля. –

+0

Итак, реальный вопрос: хотите ли вы, чтобы результат был динамически сгенерированным типом (реальный тип CLR со свойствами) или вы хотите, чтобы это была какая-то структура данных, например Dictionary? Оба варианта возможны, но я бы отговорил вас от использования истинных типов CLR, поскольку доступ к этим свойствам потребует использования отражения, которое не очень просто и очень медленно. Итак, кто это? –

+0

словарь решение это тот, который мне нужен. Благодаря :) –

Смежные вопросы