Я пытаюсь выбрать некоторые дочерние элементы из своего объекта XElement
и поместить их в новый XElement
.Выберите подэлементы из XElement в новый XElement
var objNodes =
doc.Descendants("object")
.Where(node => node.Attribute("table").Value == idbsObject.Key)
.Select(item => new XElement(item.Element("object"), new XElement(item.Element("nodes"))));
С этой части
var objNodes =
doc.Descendants("object")
.Where(node => node.Attribute("table").Value == idbsObject.Key)
Я могу получить объект элемента, глядя, как этот
<object occur="-1" prefix="" table="Articles" description="" singlename="" name="" statemode="disabled" link="" exportable="0">
<views>
<view id="1" type="" name="">
<sql>SELECT ObjectID FROM WHERE</sql>
<columns>
<column description="" sortnode="" width="" />
</columns>
<values />
</view>
</views>
<objectviews>
<view id="view1" type="view" name="Bekijken" show="1" link="" />
<view id="view2" type="edit" name="Bewerken" show="1" link="" />
<view id="view3" type="delete" name="Verwijderen" show="1" link="" />
<view id="view4" type="add" name="Toevoegen" show="1" link="" />
</objectviews>
<nodes>
<node id="ArticleId" description="" required="" datatype="i" nodetype="" fieldlength="" reference="" exclude="" tab="" order="0" default="" decimals="" maxchars="" help="" unique="" show="" />
<node id="Title" description="" required="" datatype="s" nodetype="" fieldlength="" reference="" exclude="" tab="" order="10" default="" decimals="" maxchars="" help="" unique="" show="" />
</nodes>
<tabs>
<tab id="" order="0" type="normal" child="" foreignkey="" description="Algemeen" link="" />
</tabs>
</object>
Но как я могу получить элемент объекта и узлы? Я могу получить узлы, но я не могу объединить элемент объекта и узлов в один. Для элемента объекта мне не нужны все дочерние элементы.
Ожидаемый результат
<object occur="-1" prefix="" table="Articles" description="" singlename="" name="" statemode="disabled" link="" exportable="0">
<nodes>
<node id="ArticleId" description="" required="" datatype="i" nodetype="" fieldlength="" reference="" exclude="" tab="" order="0" default="" decimals="" maxchars="" help="" unique="" show="" />
<node id="Title" description="" required="" datatype="s" nodetype="" fieldlength="" reference="" exclude="" tab="" order="10" default="" decimals="" maxchars="" help="" unique="" show="" />
</nodes>
</object>
Когда я пытаюсь получить объектный элемент как этого
var objNodes = doc.Descendants("object")
.Where(node => node.Attribute("table").Value == idbsObject.Key)
.Select(item => new XElement(item.Element("object")));
objNodes является null
не установлен VS, но ответ будет выглядеть следующим образом:. Вар objNodes = doc.Descendants ("объект") .гд (узел => node.Attribute ("таблица") Значение == idbsObject.Key) . Выбрать (item => новый XElement ("объект", новый объект [] {item.Attributes(), item.Element ("nodes")})); – jdweng
@jdweng ваш код, кажется, выполняет эту работу, он дает мне результат, который мне нужен. Если я отвечу на мой вопрос, я могу отметить ваш ответ как принятый :) – Sybren