嗨,我有问题让我的foreach工作。它只选择一个节点,在我的simpel linq查询中。我实际上不知道问题是什么,因为我使用Xmldocument和xmlnodelist。但我真的想学习如何使用Linq,我找不到任何关于谷歌为什么它不工作,我也尝试在这些链接上的expmales。Linq to xml foreach无法正常工作
http://www.dotnetcurry.com/linq/564/linq-to-xml-tutorials-examples
Simple LINQ to XML is not working
https://forums.asp.net/t/1378244.aspx?Linq+to+XML+query+how+to+get+all+elements+but+excluding+some+
http://www.c-sharpcorner.com/UploadFile/de41d6/learning-linq-made-easy-linq-to-xml-tutorial-3/
两种这些实施例仅返回,一个XML节点。
XElement ele = XElement.Load(filePath);
String aXmlString = ele.ToString(SaveOptions.DisableFormatting) + ele.Value;
foreach (XElement xNode in ele.Descendants("lakeringsdel"))
{
//litTest.Text = xNode.Element("lakeringsMetode").Value;
strData = "<table style='width:100%;' >"
+ "<tr>"
+ "<th>Nr.</th>"
+ "<th>Arbejdsbeskrivelse/Omfang</th>"
+ "<th>Metode</th>"
+ "<th>Ae</th>"
+ "</tr>"
+ "<tr>"
+ "<td>" + xNode.Element("ledenr").Value + "</td>"
+ "<td>" + xNode.Element("lakeringsDel").Value + "</td> "
+ "<td>" + xNode.Element("lakeringsMetode").Value + "</td> "
+ "<td>" + xNode.Element("arbejdsEnheder").Value + "</td> "
+ "</tr>"
+
"</table>";
}
下一个例子
var test = "";
var q = from c in ele.Descendants("lakeringsdel")
select c.Element("lakeringsDel").Value;
foreach (string item in q)
{
test = item;
}
我的XML文档
<lakRapportDetaljer>
<aePrTime>10</aePrTime>
<fabrikatModelTekst>FORD FOCUS (CEW)</fabrikatModelTekst>
<kilometerStand>28205</kilometerStand>
<lakArbejde>2745.0</lakArbejde>
<lakIaltTotal>3610.05</lakIaltTotal>
<lakIndex>134</lakIndex>
<lakMaterialer>865.05</lakMaterialer>
<lakTimepris>450.0</lakTimepris>
<lakeringsMetode>2-LAGS METALLIC</lakeringsMetode>
<lakeringsMetode>DØRGREB LEVERES LAKE</lakeringsMetode>
<lakeringsdel>
<arbejdsEnheder>10.0</arbejdsEnheder>
<lakeringsDel>KOFANGER H B</lakeringsDel>
<lakeringsMetode>REPARATION LAK.PLAST</lakeringsMetode>
<ledenr>2584</ledenr>
</lakeringsdel>
<lakeringsdel>
<arbejdsEnheder>15.0</arbejdsEnheder>
<lakeringsDel>BAGSKÆRM HØJRE</lakeringsDel>
<lakeringsMetode>REP.LAK. &lt;50%, METAL</lakeringsMetode>
<ledenr>3482</ledenr>
</lakeringsdel>
<lakeringsdel>
<arbejdsEnheder>5.0</arbejdsEnheder>
<lakeringsDel>SPECIALAFDÆKNING</lakeringsDel>
<lakeringsMetode>OVERFLADE LAKERING</lakeringsMetode>
<ledenr>1000</ledenr>
</lakeringsdel>
<miljoeLakMaterialerProcent>6</miljoeLakMaterialerProcent>
</lakRapportDetaljer>
您在示例代码中的字符串将保存最后的迭代结果。也许你想追加它或什么。 – Reniuz
此外,您还需要转义用于构建字符串的值,如果ledenr,lakeringsDel,lakeringsMetode或arbejdsEnheder包含&或
Sprotty
另请参阅https://stackoverflow.com/questions/341872/html-sanitizer-for-net – Sprotty