我哪里错了???
我有一个带有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");
答案 0 :(得分:3)
XmlElement xmlEle = xmlDoc.DocumentElement["OppDetails"];
XmlElement eleNew = xmlDoc.CreateElement("CTAStartDate");
eleNew.InnerText = ExcelUtility.GetCTAStartDate();
xmlEle.AppendChild(eleNew);
xmlDoc.Save("C:\\test.xml");
答案 1 :(得分:2)
没有完整的示例很难判断,但SelectNodes
/ SelectSingleNode
返回null
的常见原因是xml命名空间。如果xml使用了元素名称空间,那么您可能需要在查询中使用XmlNamespaceManager
,并为所需的名称空间定义合适的别名。
答案 2 :(得分:0)
rootNode
null
?
来自SelectSingleNode
上的MSDN:
匹配的第一个XmlNode XPath查询或空引用 (如果没有,则在Visual Basic中没有) 找到匹配节点。
如果rootNode
为null
,则表示无法找到该节点,并且尝试使用空rootNode
会导致您看到的异常。
答案 3 :(得分:0)
您报告的异常意味着您没有找到根元素。当SelectSingleNode
找不到请求的节点时,它将返回null
。你没有检查过。
答案 4 :(得分:0)
读取根节点并将新元素添加到根节点。我想你正试图在XML文档中附加。