我在尝试从我作为XDocument读入的.csproj文件中选择一个特定节点时遇到了麻烦。
XDocument xmldoc = XDocument.Load("The full path of the .csproj file");
这会将.csproj文件加载到XDocument中而不会出现问题。我已尝试Descendants
,Elements
等尝试获取TheNodeIWant
及其值,但无法弄清楚为什么我一直没有得到结果。
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<TheNodeIWant>The String I Want </TheNodeIWant>
</PropertyGroup>
<PropertyGroup>
.......
</PropertyGroup>
</Project>
如何选择TheNodeIWant
并检索其值?
答案 0 :(得分:6)
请参阅https://stackoverflow.com/a/4171468/1301310
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(@"c:\test.txt");
XmlNamespaceManager ns = new XmlNamespaceManager(xmldoc.NameTable);
ns.AddNamespace("msbld", "http://schemas.microsoft.com/developer/msbuild/2003");
XmlNode node = xmldoc.SelectSingleNode("//msbld:TheNodeIWant", ns);
if (node != null)
{
MessageBox.Show(node.InnerText);
}
答案 1 :(得分:4)
您可以使用MSBuild Project class更好地使用代码中的csproj
。
答案 2 :(得分:1)
我建议使用Xpath在csproj文件中导航。