Что не так с этим XPath? - PullRequest
       5

Что не так с этим XPath?

2 голосов
/ 18 июня 2010

У меня есть этот XML:

<rootCategories>
    <category id="1">
        <category id="2">
            <category id="3">
                <category id="4" />
                <category id="5" />
                <category id="6" />
            </category>
            <category id="7" />
        </category>
    </category>
</rootCategories>

И у меня есть этот оператор LINQ:

int count = doc.XPathSelectElements("//category").Elements().Count();

Я хочу, чтобы все элементы категории были, по сути, сведены вмассив, который я могу затем использовать для foreach.

Проблема в том, что возвращаемое значение счетчика (и, если оно выбито, возвращаемый массив) показывает, что самые верхние элементы категории не возвращаются.В этом случае я получаю 6 «категорийных» элементов, а не 7.

Я использовал XPath, полученный на [этой странице] (http://www.developer.com/xml/article.php/10929_3383961_1/NET-and-XML-XPath-Queries.htm).

Может кто-нибудь сказать мне, почему икак это исправить пожалуйста? Что-то не так в запросе XPath?

1 Ответ

6 голосов
/ 18 июня 2010

Хорошо, это доказывает, что хороший ночной сон является ответом на большинство проблем (или, по крайней мере, моих), поскольку решение состоит в том, чтобы просто удалить:

.Elements()

из оператора LINQ.

Конечно, этот вызов возвращал только внутренние элементы тех элементов, которые были возвращены оператором XPathSelectElements.

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