Что такое XPath (в С# API для XDocument.XPathSelectElements(xpath, nsman), если это важно) для запроса всех MyNodes из этого документа?
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<MyNode xmlns="lcmp" attr="true">
<subnode />
</MyNode>
</configuration>
- Я пробовал
/configuration/MyNode
, что неверно, потому что он игнорирует пространство имен. - Я пробовал
/configuration/lcmp:MyNode
, что неверно, потому чтоlcmp
- это URI, а не префикс. - Я пробовал
/configuration/{lcmp}MyNode
, который потерпел неудачу, потому чтоAdditional information: '/configuration/{lcmp}MyNode' has an invalid token.
EDIT: я не могу использовать mgr.AddNamespace("df", "lcmp");
, как предложили некоторые из респондентов. Это требует, чтобы программа синтаксического анализа XML знала все пространства имен, которые я планирую использовать раньше времени. Поскольку это предназначено для применения к любому исходному файлу, я не знаю, для каких пространств имен нужно вручную добавлять префиксы. Кажется, что {my uri}
- это синтаксис XPath, но Microsoft не потрудилась реализовать это... true?