gpt4 book ai didi

xml - 如何使用 xml 文档在现有元素下方添加新元素

转载 作者:数据小太阳 更新时间:2023-10-29 01:49:27 24 4
gpt4 key购买 nike

我有一个名为“Dispute”的元素,想在该元素下方添加新的名为“Records”的元素。
eg:当前的XML是这样的格式

<NonFuel>
<Desc>Non-Fuel</Desc>
<Description>
</Description>
<Quantity/>
<Amount/>
<Additional/>
<Dispute>0</Dispute>
</NonFuel>

需要添加有争议的新元素。

<NonFuel>
<Desc>Non-Fuel</Desc>
<Description>
</Description>
<Quantity/>
<Amount/>
<Additional/>
<Dispute>0</Dispute>
<Records>01920</Records>
</NonFuel>

更新代码:
尝试执行以下代码但出现错误“引用节点不是该节点的子节点”:

XmlDocument xmlDoc=new XmlDocument()
xmlDoc.LoadXml(recordDetails);
XmlNodeList disputes = xmlDoc.GetElementsByTagName(disputeTagName);
XmlNode root = xmlDoc.DocumentElement;
foreach (XmlNode disputeTag in disputes)
{
XmlElement xmlRecordNo = xmlDoc.CreateElement("RecordNo");
xmlRecordNo.InnerText = Guid.NewGuid().ToString();
root.InsertAfter(xmlRecordNo, disputeTag);
}

最佳答案

InsertAfter 必须在父节点上调用(在您的情况下为“NonFuel”)。

nonFuel.InsertAfter(xmlRecordNo, dispute);

它可能看起来有点困惑,但它是这样读的:您要求父节点 (nonFuel) 在现有节点 (dispute) 之后添加一个新节点 (xmlRecordNo)。

这里是一个完整的例子:

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(@"<NonFuel><Desc>Non-Fuel</Desc><Description></Description><Quantity/><Amount/><Additional/><Dispute>0</Dispute></NonFuel>");

XmlNode nonFuel = xmlDoc.SelectSingleNode("//NonFuel");
XmlNode dispute = xmlDoc.SelectSingleNode("//Dispute");


XmlNode xmlRecordNo= xmlDoc.CreateNode(XmlNodeType.Element, "Records", null);
xmlRecordNo.InnerText = Guid.NewGuid().ToString();
nonFuel.InsertAfter(xmlRecordNo, dispute);

关于xml - 如何使用 xml 文档在现有元素下方添加新元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16809030/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com