我想選擇的IEnumerable的<XElement>和foreach
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屬性。
// * ** aditional的信息 //
示例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數據庫中的附加表。
作爲一個開始,我想在一個空的MySQL表中創建所有的字段作爲varchar()。作爲另一個問題,並非每個ART元素都具有相同的子元素。也許有更好的方式來找到所有可能的子元素(模式類型)。
沒有什麼不對您的'foreach',越有可能是您的查詢不返回任何元素。嘗試在調試器中檢查'q'。它包含什麼? – driis 2011-05-26 16:21:59
@driis:沒有,給定的代碼不會編譯。 'Name'不是'IEnumerable'的屬性... ... –
2011-05-26 16:22:48