Linq query not returning correct elements
-
jueves, 12 de julio de 2012 1:39
Example XML:
<Name>NAME1
<Address>ADDRESS1</Address>
<Address>ADDRESS2</Address>
</Name>
How do I return the 2 addresses based on the NAME1 element? I want to use LINQ ..
Currently I have this code:
var names =
from name in doc.Descendants("Name")
select name;
foreach (var name in names)
{
Console.WriteLine("{0}", name.Value.ToString());
var items =
from item in doc.Elements("MNEMONIC")
where (string)item.Parent.Attribute("Name") == name.Value.ToString()
select item;
foreach (var item in items)
{
Console.WriteLine("{0}", item.Value.ToString());
}
}which doesn't work.. Any suggestions?
Thanks
Todas las respuestas
-
miércoles, 18 de julio de 2012 13:08
Hi
Is it the original xml syntax you are using ? If not can you post your sample xml file with correct syntax and some more entries. So that it would be more easier to correct your issue. I tried with some other xml file, it may give you some hints.
XML File:
<Employee>
<Name Value="NAME1">
<Address>ADDRESS1</Address>
<Address>ADDRESS2</Address>
</Name>
<Name Value="NAME2">
<Address>ADDRESS3</Address>
<Address>ADDRESS4</Address>
</Name>
</Employee> Sample code:XDocument oDocument = XDocument.Load(sPath);
IEnumerable<XElement> xElementList = from tmpElement in oDocument.Descendants("Name")
where tmpElement.Attribute("Value").Value.Equals("NAME1")
select tmpElement;
List<XNode> lstVal = new List<XNode>();
lstVal = xElementList.Elements("Address").Nodes().ToList();
Regards
Dominic
If a post answers your question, please click "Mark As Answer" on that post and "Mark as Helpful

