更改xml文件中元素的值,该文件基于asp.net中的raml21.xsd模式

时间:2016-10-12 09:55:29

标签: asp.net xml raml

下面是我要更新的xml文件(例如 - 在log元素中更改dateTime属性)。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<raml xmlns="raml21.xsd" version="2.1">
  <cmData id="3221225472" scope="all" type="plan">
    <header>
      <log action="created" appInfo="Nokia BTS Site Manager" appVersion="FL16" dateTime="2016-09-23T17:59:59" user="BTSSM"/>
    </header>
  </cmData>
</raml>

这是我的代码:

filePath = openFileDialogXml.FileName;
XmlDocument document = new XmlDocument();
document.Load(filePath);
XmlElement node1 = document.SelectSingleNode("/header/log") as XmlElement;
if (node1 != null)
{
  node1.Attributes[3].Value = "test";
}
document.Save(filePath);

但问题是:node1始终为null。我现在问题导致xml文件中的这一行:

raml xmlns="raml21.xsd" version="2.1"

1 个答案:

答案 0 :(得分:0)

您需要在查找元素时考虑命名空间。并在XPath中包含目标和根之间的所有元素

使用带有SelectSingleNode的{​​{1}}重载,将后者配置为包含所需的命名空间。

类似的东西:

XmlNamespaceManager