我正在尝试使用select-xml从SharePoint解决方案中找出一些东西。我有一个包含许多功能的解决方案目录,而不是打开每个feature.xml并手动选择功能名称并将它们放在一个列表中,我希望使用powershell和select-xml来做同样的事情。
我的尝试是这样的:
ls -recurse -filter feature.xml | select-xml "/Feature"我什么也没得到,所以我试了一下:
ls -recurse -filter feature.xml | select-xml "//*"这似乎做了它应该做的事情。我得到了我的解决方案中所有feature.xml文件中每个XML节点的列表。
我尝试了像"//Feature“和"Feature”这样的XPath表达式,但都没有得到任何结果。
在我看来,我的XPath表达式是正确的,但是select-xml的行为有点令人困惑。有人知道为什么会发生这种事吗?
发布于 2010-11-30 07:28:19
也许问题出在xml名称空间上。尝试使用-namespace获取正确的xpath查询。
通过从feature.xml文件中删除xmlns并运行命令来测试这一点。
发布于 2010-11-30 22:36:56
甚至必须为Select-Xml指定一个“默认”名称空间,例如:
$ns = @{dns = 'http://schemas.microsoft.com/sharepoint/'}
ls . -r feature.xml | Select-Xml '//dns:Feature' -Namespace $nshttps://stackoverflow.com/questions/4308825
复制相似问题