4

我在尝试从作为 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和检索它的值?

4

3 回答 3

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);
}
于 2013-03-18T16:39:13.757 回答
4

您可以使用MSBuild Project 类更好地csproj从代码中使用。

于 2013-03-18T16:19:36.823 回答
1

我建议使用Xpath在您的 csproj 文件中导航。

于 2013-03-18T16:23:02.887 回答