var root = doc.DocumentNode;
var sb = new StringBuilder();
foreach (var node in root.DescendantNodesAndSelf())
{
if (!node.HasChildNodes)
{
string text = node.InnerText;
if (!string.IsNullOrEmpty(text))
sb.AppendLine(text.Trim());
}
}
Это делает то, что вам нужно, но я не уверен, что это лучший способ.Возможно, вам следует перебрать что-то другое, кроме DescendantNodesAndSelf для оптимальной производительности.