На самом деле я не в состоянии много исследовать «правильный» способ обработки этого в XML, но как насчет того, если бы вы произвели некоторые манипуляции со строками в результате?
var data = from query in loadedData.Descendants("a")
select new myClass
{
Word = (string)query.Value.Substring(0, ((string)query.Value).Length - ((string)query.Element("b").Value).Length),
secondWord = (string)query.Element("b")
};
Уродливо, но это работает.Я уверен, что есть «лучший» способ, но, как я уже сказал, у меня недостаточно пропускной способности, чтобы разобраться в этом.
РЕДАКТИРОВАТЬ
Как я упоминал в комментарии к первоначальному вопросу, если вы в первую очередь контролируете написание XML, было бы лучше переформатировать его - возможно, так.
<rootnode>
<item><a>first</a><b>1st</b></item>
<item><a>second</a><b>2nd</b></item>
</rootnode>
Это не толькопозволяет вам привести в порядок код, чтобы получить чистые значения, но позволяет гибко добавлять больше элементов данных в каждый элемент, если это необходимо.например,
<rootnode>
<item><a>first</a><b>1st</b><c>primary</c></item>
<item><a>second</a><b>2nd</b><c>secondary</c></item>
</rootnode>