2013-06-15 3 views
0

У меня есть пример XML-документы, какLINQ к XML Processing

<?xml version="1.0" encoding="utf-8" ?> 
<Employees> 
<Employee> 
    <EmpId>1</EmpId> 
    <Name>Shawn</Name> 
</Employee> 
<Employee> 
    <EmpId>2</EmpId> 
    <Name>Neil</Name> 
</Employee> 
<Employee> 
    <EmpId>3</EmpId> 
    <Name>Kate</Name> 
    </Employee> 
<Employee> 
    <EmpId>4</EmpId> 
    <Name>Robert</Name> 
</Employee> 
</Employees> 

Я хотел, чтобы отобразить имя сотрудников.

Я использую следующий фрагмент кода

XElement doc = XElement.Load("loading document"); 
IEnumerable<XElement> employees = doc.Elements(); 

Как продлить код для отображения имен сотрудников?

+0

Ну, что вы пробовали, прежде чем спрашивать? (Подсказка: вы, вероятно, хотите называть 'Элемент (« Имя »)' для каждого элемента «Сотрудник» ...) –

ответ

0
XElement doc = XElement.Load("loading document"); 
IEnumerable<string> result = doc.Root.Elements().SelectMany(n => n.Elements("Name")).Select(n => n.Value); 

получит вам все имена в качестве IEnumerable<string>.

0

Попробуйте

XElement doc = XElement.Load(@"loading document") 
IEnumerable<XElement> employees = doc.Elements(); 

foreach (var employee in employees) 
    { 
     Console.WriteLine(employee.Element("Name").Value); 
    } 
0
XElement doc = XElement.Load(@"loading document") 

// Get all employeesNames 
IEnumerable<string> employeesNames= 
     from el in doc.Root.Descendants("Employee")  
     select el.Descendants("Name");