下面是我要更新的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"
答案 0 :(得分:0)
您需要在查找元素时考虑命名空间。并在XPath中包含目标和根之间的所有元素
使用带有SelectSingleNode
的{{1}}重载,将后者配置为包含所需的命名空间。
类似的东西:
XmlNamespaceManager