[英]Adding element to existing XML node
我要去哪里错了???
我已经有一个带有OppDetails作为标记的xml文件,如下所示
<OppDetails>
<OMID>245414</OMID>
<ClientName>Best Buy</ClientName>
<OppName>International Rate Card</OppName>
<CTALinkType>AO,IO,MC,TC</CTALinkType>
</OppDetails>
</OppFact>
现在,我正在尝试向其中添加另一个元素,但是AppendChild方法中出现错误,请帮助
XmlNode rootNode = xmlDoc.SelectSingleNode("OppDetails");
XmlElement xmlEle = xmlDoc.CreateElement("CTAStartDate");
xmlEle.InnerText = ExcelUtility.GetCTAStartDate();
rootNode.AppendChild(xmlEle);
xmlDoc.Save("C:\\test.xml");
XmlElement xmlEle = xmlDoc.DocumentElement["OppDetails"];
XmlElement eleNew = xmlDoc.CreateElement("CTAStartDate");
eleNew.InnerText = ExcelUtility.GetCTAStartDate();
xmlEle.AppendChild(eleNew);
xmlDoc.Save("C:\\test.xml");
没有完整的示例很难说,但是SelectNodes
/ SelectSingleNode
返回null
的常见原因是xml名称空间。 如果xml使用元素名称空间,则可能需要与查询一起使用XmlNamespaceManager
,并为所需的名称空间定义合适的别名。
rootNode
是否为null
?
从SelectSingleNode
MSDN :
如果找不到匹配的节点,则第一个与XPath查询匹配的XmlNode或一个空引用(在Visual Basic中为Nothing)。
如果rootNode
为null
,则表明找不到该节点,并且尝试使用null rootNode
将导致您看到的异常。
您报告的异常意味着您尚未找到根元素。 当SelectSingleNode
找不到请求的节点时,它返回null
。 您没有检查。
读取根节点,然后将新元素添加到根节点中。 我认为您正在尝试将其附加到XML文档中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.