私は次のコードを持っています、
XDocument doc = XDocument.Parse(input);
var nodes = doc.Element(rootNode)
.Descendants()
.Where(n =>
(n.Value != "0"
&& n.Value != ".00"
&& n.Value != "false"
&& n.Value != "")
|| n.HasElements)
.Select(n => new
{
n.Name,
n.Value,
Level = n.Ancestors().Count() - 1,
n.HasElements
});
var output = new StringBuilder();
foreach (var node in nodes)
{
if (node.HasElements)
{
output.AppendLine(new string(' ', node.Level) + node.Name.ToString() + ":");
}
else
{
}
私の問題は、親ノードに空の子ノードが 1 つしかない場合、余分な空白行を 1 行挿入する必要があることです。唯一の子が空かどうかを確認する方法がわかりませんでした。
を使用して子孫の数を取得できますが、Descendants = n.Descendants().Count()
その唯一の子が空であるかどうかをテストする方法がわかりません。