public void CheckCellCountPerTableRow() { foreach (var table in _xdoc.Descendants("text").Descendants("table")) { var constantcellcount = true; if (!table.IsEmpty) { var cellcount = table.Element("row").Elements("cell").Count(); foreach (var row in table.Elements("row")) { var ctr = 0; foreach (var cell in row.Elements("cell")) { try { ctr = ctr + int.Parse(cell.Attribute("cols").Value); } catch (NullReferenceException nullReferenceException) { ctr++; } } if (cellcount != ctr) { constantcellcount = false; break; } } } if (!constantcellcount) { var errorlist = Errorlist; var errorModel = new ErrorModel { LineNumber = ((IXmlLineInfo) table).LineNumber, ErrorMessage = "Unequal number of cell distribution in the table", Text = Regex.Match(Regex.Replace(table.ToString(), @"\r\n", ""), "<row>.*?</row>", RegexOptions.Singleline).Value.Replace(" />", "/>") }; errorlist.Add(errorModel); } } }
<p> <table> <row> <cell>blah</cell> <cell/> </row> <row> <cell>blah</cell> <cell>90</cell> </row> <row> <cell cols="2"/> <cell/> </row> <row> <cell>blah</cell> <cell/> </row> <row> <cell>blah</cell> <cell>11</cell> </row> </table> </p> <p>blah blah blah</p> <p> <table> <row> <cell>blah</cell> <cell>90</cell> <cell/> </row> <row> <cell>blah</cell> <cell>90</cell> <cell>90</cell> </row> <row> <cell cols="3"/> </row> <row> <cell>blah</cell> <cell>90</cell> <cell/> </row> <row> <cell>blah</cell> <cell>11</cell> <cell>90</cell> </row> </table> </p>
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)