繁体   English   中英

向现有XML节点添加元素

[英]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)。

如果rootNodenull ,则表明找不到该节点,并且尝试使用null rootNode将导致您看到的异常。

您报告的异常意味着您尚未找到根元素。 SelectSingleNode找不到请求的节点时,它返回null 您没有检查。

读取根节点,然后将新元素添加到根节点中。 我认为您正在尝试将其附加到XML文档中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM