我有以下列表
<Inventory>
<Car ID="1000">
<PetName>Jimbo</PetName>
<Color>Red</Color>
<Make>Ford</Make>
</Car>
<Car ID="1001">
<PetName>Jimbo</PetName>
<Color>Red</Color>
<Make>Ford</Make>
</Car>
</Inventory>
我正在尝试删除ID = 1000的Car
节点,但我无法正确使用
以下是我的代码,请注意调试器永远不会发送e.Remove
:
Dim doc As XDocument = XDocument.Load("Test.xml")
Dim e As XElement = From element
In doc.Elements("Inventory").Elements("Car")
Where element.Attribute("ID").Value = "1000"
Select element
e.Remove()
答案 0 :(得分:0)
您的LINQ查询返回IEnumerable<XElement>
,而不是XElement
。试试这个:
Dim e = From element
In doc.Root.Elements("Car")
Where element.Attribute("ID").Value = "1000"
Select element
e.Remove()
如果这不起作用,请确保您已启用Option Infer
以使用隐式类型变量或将初始化更改为Dim e As IEnumerable(Of XEelement) = ...
为显式。
由于您使用的是XDocument
,因此您可以使用Root
属性,而不是查找Inventory
节点,即doc.Root...
而不是doc.Elements("Inventory")...