Mam zestaw elementów XML, które są rodzeństwem
<z>1</z>
<b>1</b>
<w>1</w>
<n>1</n>
<e>1</e>
<v>1</v>
XElement y wskazuje obecnie Element e. Chcę teraz spojrzeć na Element b.
Kod
var y = e.ElementsBeforeSelf("b");
zwraca kolekcję tylko elementem b.
Oczywiście teraz muszę zwrócić tylko singielelement b. Nie zawsze jestem pewien, że Element b będzie stałą liczbą elementów powyżej e. Brakuje mi tutaj czegoś naprawdę oczywistego, ponieważ nie byłem w stanie przyjrzeć się wielu dobrym artykułom, aby to zrozumieć.
Rzeczy, których próbowałem:
var y = e.ElementsBeforeSelf().First().Element("b");
var y = e.ElementsBeforeSelf("b").Element("b");
var y = e.ElementsBeforeSelf().Single().Element("b");
var y = e.ElementsBeforeSelf().Single(x=>x.Name=="b").Element("b");
Jak wybrać i zwrócić tylko pojedynczy element b, zaczynając od elementu e?
Odpowiedzi:
2 dla odpowiedzi № 1var y = e.ElementsBeforeSelf("b").First();
0 dla odpowiedzi nr 2
W VB byłoby to
"y has element e
Dim b As XElement
b = y.Parent.<b>.SingleOrDefault
Wersja C # powinna być podobna.