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