以下是我的XML
的结构<Id>
<Sid> 123 </Sid>
<Name> Xyz </Name>
<Name> Abc </Name>
</Id>
<Id>
<Sid> 789 </Sid>
<Name> Xyz </Name>
<Name> Abc </Name>
</Id>
我只想输入一个新的子节点,即任何名称为Sid = 789的节点的名称。
我已经尝试过这段代码,但它没有用。
XElement xe = xDoc.Elements().Where(r => (string)r.Element("Sid") == "789").FirstOrDefault();
xe.Add(new XElement("Name", "Hello"));
由于我是Linq和Excel的新手,我无法弄明白。
任何人都可以帮助我理解这一点,并取得积极成果。
各种帮助将不胜感激。
谢谢和问候。
答案 0 :(得分:0)
您可以尝试使用XPath查询表达式来选择具有复杂条件的元素:
using System.Xml.XPath;
........
........
XElement xe = xDoc.XPathSelectElement("//Id[Sid=123]");
xe.Add(new XElement("Name", "Hello"));
或没有XPath * :
XElement xe = xDoc.Root.Elements()
.Where(r => (string)r.Element("Sid") == "789")
.FirstOrDefault();
xe.Add(new XElement("Name", "Hello"));
*)我假设<Id>
元素是根节点的直接子元素。