【发布时间】:2018-06-28 10:23:29
【问题描述】:
我已阅读 other question 并将答案应用于我的代码,但它仍然无法正常工作。
我使用 xml 来读取 csproj 文件以将某些内容读/写到它的主体中。
This 是我的 csproject 文件,如果有人关心的话!
我的代码:
static void Main(string[] args)
{
string file = @"D:\Project\svn_longnx\LearnSvnRevision\ConsoleApp1\WindowsFormsApp1\WindowsFormsApp1.csproj";
XmlDocument xdoc = new XmlDocument();
xdoc.Load(file);
XmlNamespaceManager nsmgr = new XmlNamespaceManager(xdoc.NameTable);
nsmgr.AddNamespace("default", "http://schemas.microsoft.com/developer/msbuild/2003");
XmlElement root = xdoc.DocumentElement;
XmlNode node = root.SelectSingleNode("Project/PropertyGroup/ApplicationVersion",nsmgr);
Console.WriteLine(node.Value);
}
这个伪代码失败了:
static void Main(string[] args)
{
string file = @"D:\Project\svn_longnx\LearnSvnRevision\ConsoleApp1\WindowsFormsApp1\WindowsFormsApp1.csproj";
XmlDocument xdoc = new XmlDocument();
xdoc.Load(file);
XmlElement root = xdoc.DocumentElement;
XmlNode node = root.SelectSingleNode("Project/PropertyGroup/ApplicationVersion");
Console.WriteLine(node.Value);
}
【问题讨论】:
-
提示:使用
XDocument和相关对象而不是旧的XmlDocument -
您向管理器添加了一个命名空间,但不要在 xpath 中使用它。使用
"default:Project/default:PropertyGroup/default:ApplicationVersion"。 -
@AlexanderPetrov :它仍然为空。 imgur.com/p90RofB