GOOGLE ADS

суббота, 7 мая 2022 г.

Как устранить ошибку «Выражение должно оцениваться как набор узлов» при проверке существования узла?

Я пытаюсь проверить наличие узла, используя следующий код.NET:

xmlDocument.SelectSingleNode(
String.Format("//ErrorTable/ProjectName/text()='{0}'", projectName));

Это всегда вызывает:


XPathException: выражение должно оцениваться как набор узлов.


Почему я получаю эту ошибку и как ее решить? Спасибо.


Решение проблемы

Данное выражение имеет логическое значение, а не набор узлов. Я предполагаю, что вы хотите проверить, соответствует ли ProjectName параметризованному тексту. В этом случае нужно написать

//ErrorTable/ProjectName[text()='{0}']

Это дает вам список всех узлов (набор узлов), соответствующих заданному условию. Этот список может быть пустым, и в этом случае выражение C# в вашем образце вернет значение null.

В качестве запоздалой мысли: вы можете использовать исходное выражение xpath, но не с SelectSingleNode, а с Evaluate, например:

(bool)xmlDocument.CreateNavigator().Evaluate(String.Format("//ErrorTable/ProjectName/text()='{0}'", projectName));

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...