4

XDocument として読み込んだ .csproj ファイルから特定のノードを選択しようとすると問題が発生します。

XDocument xmldoc = XDocument.Load("The full path of the .csproj file");

これにより、.csproj ファイルが問題なく XDocument に読み込まれます。DescendantsElementsなどを試してその値を取得しようとしまし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

csproj ファイル内を移動するには、 Xpathを使用することをお勧めします。

于 2013-03-18T16:23:02.887 に答える