我有xml如下。我想从该xml中删除第n个产品节点。
我曾经尝试过但没有工作。
document.Descendants("products").Descendants("product").Take(1)
XML
<products>
<product>
<territory>A</territory>
</product>
<product>
<territory>B</territory>
</product>
<product>
<territory>C</territory>
</product>
<product>
<territory>D</territory>
</product>
<product>
<territory>E</territory>
</product>
</products>
如何从此xml中删除第3个产品节点?
答案 0 :(得分:1)
您无法使用索引访问子节点。一种方法是:
document.Descendants("products").Descendants("product").Skip(2).Take(1);
答案 1 :(得分:1)
我建议Linq
使用Xml
。您可以使用ElementAt
并在给定位置查找元素,可以在find元素上调用Remove
来删除元素。
int position = 3; // Specify position.
XElement element = XElement.Parse(input);
element
.Elements("product")
.ElementAt(3)
.Remove();
<强>输出继电器强>
<products>
<product>
<territory>A</territory>
</product>
<product>
<territory>B</territory>
</product>
<product>
<territory>C</territory>
</product>
<product>
<territory>E</territory>
</product>
</products>
选中此Demo