Я хотел бы, чтобы выбрать все элементыIEnumerable <XElement> и Еогеасп
var q = from artikel in xmlSource.Descendants("ART")
where artikel.Element("ID").Value.Equals("15")
select artikel.Elements();
//Does not work
foreach (var element in q)
{
Console.WriteLine("Customer name = {0}", element.Name);
}
Как я могу выводить все элементы? У меня есть некоторые проблемы с итераторами.
Я не сейчас, как итерации IEnumerable с foreach и доступ к свойству element.Name.
// * ** ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ //
Пример XML
<ARTICLE>
<ART>
<ID>0020209</ID>
<EXP>36</EXP>
<QTY>1</QTY>
<SMCAT>B</SMCAT>
<DSCRD>Example Description 1</DSCRD>
<ARTCOMP>
<COMPNO>10710</COMPNO>
<ROLE>H</ROLE>
<ARTNO1>320059</ARTNO1>
<ARTNO2>320059</ARTNO2>
</ARTCOMP>
<ARTCOMP>
<COMPNO>10710</COMPNO>
<ROLE>V</ROLE>
<ARTNO1>320059</ARTNO1>
<ARTNO2>320059</ARTNO2>
</ARTCOMP>
<ARTBAR>
<CDTYP>E13</CDTYP>
<BC>7680202580475</BC>
<BCSTAT>A</BCSTAT>
</ARTBAR>
<ARTPRI>
<VDAT>2010-12-01T00:00:00+01:00</VDAT>
<PTYP>PEXF</PTYP>
<PRICE>30</PRICE>
</ARTPRI>
</ART>
<ART>
<ID>0020244</ID>
<EXP>60</EXP>
<QTY>30</QTY>
<DSCRD>FERRO GRADUMET Depottabl 30 Stk</DSCRD>
<ARTCOMP>
<COMPNO>1836</COMPNO>
<ROLE>H</ROLE>
<ARTNO1>685230</ARTNO1>
<ARTNO2>685230</ARTNO2>
</ARTCOMP>
<ARTCOMP>
<COMPNO>1836</COMPNO>
<ROLE>V</ROLE>
<ARTNO1>685230</ARTNO1>
<ARTNO2>685230</ARTNO2>
</ARTCOMP>
<ARTCOMP>
<COMPNO>5360</COMPNO>
<ROLE>L</ROLE>
<ARTNO1>685230</ARTNO1>
<ARTNO2>685230</ARTNO2>
</ARTCOMP>
</ART>
</ARTICLE>
Я должен импортировать XML-файл в нормализованной таблицы MySQL. ARTCOMP/ARTBAR являются дополнительными таблицами в базе данных MySQL Datebase.
В качестве начала я хотел создать все поля как varchar() в пустой таблице MySQL. В качестве дополнительной проблемы не каждый элемент ART имеет одинаковые дочерние элементы. Возможно, есть лучший способ найти все возможные дочерние элементы (вид схемы).
Там нет ничего плохого с 'foreach', более вероятно, ваш запрос не возвращает никаких элементов. Попробуйте изучить 'q' в отладчике. Что он содержит? – driis
@driis: Нет, данный код не будет компилироваться. 'Name' не является свойством' IEnumerable '... –