xml - 如何使用 Powershell 解析 VS2013 csproj XML 文件以修改 PreBuildEvent

标签 xml powershell xpath

我一直在阅读 Xpath 查询(我认为是 dotnet 中使用的版本 2,但我仍然无法让我的脚本能够设置 xml 区域的内容。我该如何在 powershell 中做到这一点?
谢谢你!

函数获取 XmlCsproj {
$toolsPath = "C:\"
[xml] $axml= 获取内容-路径“$toolsPath\csproj03.csproj”

# 这会输出正确的字符串; “某物”,但不能将其设置为等于某物
$axml.Project.PropertyGroup.PreBuildEvent

# 零来自 ;
$axml.SelectSingleNode("/Project/PropertyGroup/PreBuildEvent")

}

最佳答案

VS csproj 文件中有默认命名空间。因此,所有元素,除非另有明确指定,都在该命名空间中。您可以尝试以这种方式使用 XPath 查询命名空间中的元素:

.....
# nil from ; 
$ns = new-object Xml.XmlNamespaceManager $xml.NameTable
$ns.AddNamespace("d", "http://schemas.microsoft.com/developer/msbuild/2003")
$axml.SelectSingleNode( "/d:Project/d:PropertyGroup/d:PreBuildEvent")

相关:What is the syntax for accessing child nodes using System.Xml.XmlDocument.SelectNodes with a namespace?

关于xml - 如何使用 Powershell 解析 VS2013 csproj XML 文件以修改 PreBuildEvent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33863592/

相关文章:

Sitecore 6.4 快速查询,我可以使用从查询运行的项目开始的相对路径吗?

xml - XPath查询如何根据两个属性获取一个属性的值

xml - 合并 XSLT 中的元素序列

c# - runspace New-MsolLicenseOptions 命令参数

xml - 戈朗 : Undefined field in struct error

powershell - 如何获取 Azure 扩展的最新 api 版本

arrays - 将数组项传递给 PowerShell 中的函数

java - 如何获取 Selenium XPath 结果的计数

android - 如何让一个 TextView 显示在另一个 TextView 下方?安卓

Java XML 读取