PowerShell select-xml xpath не работает

Я пытаюсь использовать 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 ответа

Решение

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

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

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

$ns = @{dns = 'http://schemas.microsoft.com/sharepoint/'}
ls . -r feature.xml | Select-Xml '//dns:Feature' -Namespace $ns
Другие вопросы по тегам