PowerShell select-xml xpath не работает - PullRequest
8 голосов
/ 30 ноября 2010

Я пытаюсь использовать select-xml, чтобы исключить некоторые вещи из решения SharePoint.У меня есть каталог решений, который содержит ряд функций, и вместо того, чтобы открывать каждый feature.xml, выбирать имена функций вручную и помещать их в список, я надеялся сделать эквивалент, используя powershell и select-xml.

Моя попытка прошла примерно так:

ls -recurse -filter feature.xml | select-xml "/Feature"

, и я ничего не получил, поэтому я попробовал это:

ls -recurse -filter feature.xml | select-xml "//*"

, который, казалось, делал то, что предполагалосьделать.Я получил список каждого узла XML во всех файлах feature.xml в своем решении.

Я пробовал выражения XPath, такие как "// Feature" и "Feature", ни одно из которых не дало никаких результатов.

Мне кажется, что мои выражения XPath верны, но поведение select-xml немного сбивает с толку.Кто-нибудь знает, почему это может происходить?

Ответы [ 2 ]

8 голосов
/ 30 ноября 2010

Даже для пространства имен по умолчанию должно быть указано Select-Xml, например ::1001*

$ns = @{dns = 'http://schemas.microsoft.com/sharepoint/'}
ls . -r feature.xml | Select-Xml '//dns:Feature' -Namespace $ns
8 голосов
/ 30 ноября 2010

Возможно, проблема связана с пространством имен xml. Попробуйте использовать -namespace , чтобы получить правильный запрос xpath.

Проверьте это, удалив xmlns из файла feature.xml и выполнив команду.

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