Я использую XmlReader для чтения XML-файла и хочу посчитать XML-элемент прямо под элементом документа, который, как я знаю, должен быть корневым элементом.
XML
<?xml version="1.0" encoding="utf-8"?>
<NewsLetters>
<EMail Date="10/10/2009">hello@hello.com</EMail>
<EMail Date="10/10/2009">hello@hello.com</EMail>
<EMail Date="10/10/2009">hello@hello.com</EMail>
<EMail Date="10/10/2009">hello@hello.com</EMail>
</NewsLetters>
C # код:
public static string TotalMemberCount()
{
XmlTextReader reader = new XmlTextReader(HttpContext.Current.Server.MapPath("~/Newsletter/NewsLetter.xml"));
int totalCount = 0;
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element && reader.NodeType != XmlNodeType.Document)
totalCount++;
}
return totalCount.ToString();
}
Обычно я ожидал 4 записи, но он возвращает 5, потому что он также учитывает корневой элемент. Что мне делать? На самом деле я знаю, как решить с помощью XDocument, XElement и LINQ, но я хочу решить таким образом, не спрашивайте меня, почему, потому что я хочу научиться каждому способу решения таких проблем.
Заранее спасибо.
С уважением ....