用C#中的XDocument创建PathNavigator(带linq的xml)
本文关键字:linq xml PathNavigator 中的 XDocument 创建 | 更新日期: 2023-09-27 18:28:39
我有个问题。是否可以导航到xml中的特定字段并向其中添加元素?
我试过这个:
XDocument doc = XDocument.Load("myxmldoc.xml");
doc.Element("Table").Element(Product).CreateNavigator().Add(new XElement("Lamp", "Lamp"));
不用说,它不起作用。问题是我有一个xml,它看起来像这样:
<Table>
<Product>
<Chair/>
<Table/>
<ChessBoard/>
</Product>
<Product>
<Chair/>
<Table/>
<ChessBoard/>
</Product>
<Product>
<Chair/>
<Table/>
<ChessBoard/>
</Product>
</Table>
正如你所看到的,我有很多产品标签,我希望能够用linq将项目Lamp添加到特定的节点。每次我添加元素时使用:
doc.Element("Table").Element("Porduct").Add(new XElement("Lamp", "Lamp"));
Lamp元素转到第一个Product节点。我希望它转到一个特定的节点,比如说第二个节点。
有人建议我使用:
doc.Element("Table").Element("Porduct").ElementAt(2).Add(new XElement("Lamp", "Lamp"));
但它不起作用。Visual Studio 2010表示它不存在。
您需要Elements("Porduct")
(注意s)才能使用ElementAt()
:
doc.Element("Table").Elements("Porduct").ElementAt(2).Add(...);
如果产品有一些东西可以识别它们,比如ID属性,那就容易一点了。
(也许你应该修复打字错误Pordduct/产品)