CSharp · Console
using System;
using System.Linq;
using System.Xml;
using System.Xml.Linq;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Data.DataSetExtensions;
using System.Data.Linq;
using System.Text;
using System.Text.RegularExpressions;
public class Program
{
public static void Main()
{
string input = @"<root>
<child1>
Value1
</child1>
<child2>
<child3>
Value2
</child3>
<child4>
<child5>
Value1
</child5>
</child4>
</child2>
<child6>
Value1
</child6>
</root>";
XDocument doc = XDocument.Parse(input);
doc.Descendants()
.Where(x=> (!x.HasElements &&((string)x.Value).Trim() == "Value1")
|| (x.Attribute("value") != null && x.Attribute("value").Value == "Value1"))
.Count().Dump();
}
}