Как посчитать количество узлов XML, содержащих конкретное значение - PullRequest
4 голосов
/ 10 января 2011

Я ищу, как подсчитать узлы в XML-файле, которые содержат значение «Нет», а также общее количество элементов.

У меня нормально работает счетчик элементов, но яне уверен в логике искать в XML значение для подсчета.

Чтобы получить общее число, которое я использую:

    XmlDocument readDoc = new XmlDocument();
    readDoc.Load(MapPath("Results.xml"));
    int count = readDoc.SelectNodes("root/User").Count;
    lblResults.Text = count.ToString();

Ниже мой XML:

<?xml version="1.0" encoding="iso-8859-1"?>
<root>
  <User>
    <URL>http://www.example.com</URL>
    <JSEnabled>Yes</JSEnabled>
  </User>
  <User>
   <URL>http://www.example.com</URL>
   <JSEnabled>Yes</JSEnabled>
 </User>
 <User>
   <URL>http://www.example.com</URL>
   <JSEnabled>Yes</JSEnabled>
 </User>
 <User>
   <URL>http://www.example.com</URL>
   <JSEnabled>Yes</JSEnabled>
 </User>
 <User>
   <URL>http://www.example.com</URL>
   <JSEnabled>No</JSEnabled>
 </User>

Ответы [ 2 ]

7 голосов
/ 10 января 2011
XmlDocument readDoc = new XmlDocument();
readDoc.Load(MapPath("Results.xml"));
int count = readDoc.SelectNodes("root/User").Count;
lblResults.Text = count.ToString();
int NoCount = readDoc.SelectNodes("JSEnabled[. = \"No\"]").Count;

Хорошая ссылка здесь: http://msdn.microsoft.com/en-us/library/ms256086.aspx

1 голос
/ 11 января 2011

Я ищу, как подсчитать узлы в файле XML, который содержит значение "Нет"

В XPath:

count(/root/User[JSEnabled = 'No'])

а также общее количество элементов.

То, что у вас уже есть:

count(/root/User)

Или используйте выражение для выбора узлов и любой метод DOM для подсчета Node SetУчастники результата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...