私は XmlReader を使用して XML ファイルを読み取っていますが、XML 要素を Document 要素のすぐ下に数えたいと思っています。
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 を使用して解決する方法を知っていますが、この方法で解決したいのですが、そのような問題を解決できるあらゆる方法を学びたいので、理由を聞かないでください。
前もって感謝します。
心から....