Похоже, вы просто хотите добавить XElement - не использовать. Последний или что-либо еще, добавление после последнего является поведением по умолчанию.
IOW:
Вы можете сказать:
Dim node1 as XElement = new XElement( "A1")
Dim node2 as XElement = new XElement( "A2")
Dim node3 as XElement = new XElement ("A3")
node2.Add( node3)
Dim root as XElement = new XElement("Root",new XElement(){node1,node2})
Чтобы получить:
<Root>
<A1 />
<A2>
<A3 />
</A2>
</Root>
Или сделать то же самое с:
Dim node1 as XElement = new XElement( "A1")
Dim node2 as XElement = new XElement( "A2")
Dim node3 as XElement = new XElement ("A3")
Dim root as XElement = new XElement("Root")
Dim children as XElement() = new XElement(){node1,node2}
for each child in children
root.add( child)
if child.Name = "A2"
child.Add( node3)
end if
next
Если вы ищете последний узел для запуска в дереве (A3 в примере выше), вам нужно:
root.Descendants().Last()
Является ли это тем, что вам действительно нужно (задавая подобные вопросы, хорошо бы дать дерево и сказать, какие узлы вы хотите изолировать)?