首页 > 解决方案 > 如何读取序列化 XML 文件中的节点?

问题描述

我正在尝试读取序列化 XML 文件中的节点。这是 XML 文件的第一部分(我使用的是屏幕截图,因为粘贴的格式很奇怪):

在此处输入图像描述

这是我用来读取 XML 的代码及其引发的错误:

在此处输入图像描述

我正在尝试读取<ScenarioDescription>节点。

根据要求,这是整个 XML 文件。不幸的是,这只是一团糟。这是XML 文件的链接

标签: c#xmlserialization

解决方案


你应该你需要指定命名空间。在这种特殊情况下,默认命名空间用于声明http://schemas.datacontract.org/2004/07/ModelLib命名空间。

var xml = new XmlDocument();
xml.LoadXml(str);
XmlNamespaceManager ns = new XmlNamespaceManager(xml.NameTable);
ns.AddNamespace("x", xml.DocumentElement.NamespaceURI);
var root = xml.DocumentElement;
var test = root.SelectSingleNode("//x:ScenarioDescription",ns);
var scenarioText = test.InnerText;

推荐阅读