string s = @"<body><div class=""item"">123</div>***<div class=""item""><div class=""main"">456</div></div></body>";
using (var sr = new StringReader(s))
{
var xdoc = XDocument.Load(sr);
var elements = xdoc.Descendants("div").Where(x => x.Attribute("class").Value == "item");
foreach (var element in elements)
{
Console.WriteLine(element.Value);
}
}
expected
123
<div class="main">456</div>
but actualy is
123
456
now i'm using string.Join(Environment.NewLine, element.Nodes())
to get a proper value, but I dislike it, too complex for this easy task.