Вот отрывок XML файла, в котором нужно считать узлы ROW:
<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:html="http://www.w3.org/TR/REC-html40">
<OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office">
<AllowPNG/>
</OfficeDocumentSettings>
<ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
<WindowHeight>6030</WindowHeight>
<WindowWidth>14055</WindowWidth>
<WindowTopX>0</WindowTopX>
<WindowTopY>0</WindowTopY>
<RefModeR1C1/>
<ProtectStructure>False</ProtectStructure>
<ProtectWindows>False</ProtectWindows>
</ExcelWorkbook>
<Styles>
<Style ss:ID="Default" ss:Name="Normal">
<Alignment ss:Vertical="Bottom"/>
<Borders/>
<Font ss:FontName="Calibri" x:CharSet="204" x:Family="Swiss" ss:Size="11"
ss:Color="#000000"/>
<Interior/>
<NumberFormat/>
<Protection/>
</Style>
<Style ss:ID="s69">
<Alignment ss:Horizontal="Left" ss:Vertical="Bottom"/>
<Borders>
<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
</Borders>
</Style>
<Style ss:ID="s70">
<Alignment ss:Horizontal="Left" ss:Vertical="Bottom"/>
<Borders>
<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
</Borders>
<NumberFormat ss:Format="Short Date"/>
</Style>
<Style ss:ID="s71">
<Alignment ss:Horizontal="Left" ss:Vertical="Bottom"/>
<Borders>
<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
</Borders>
<NumberFormat ss:Format="mmm/yy"/>
</Style>
<Style ss:ID="s72">
<Alignment ss:Horizontal="Left" ss:Vertical="Bottom"/>
<Borders>
<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
</Borders>
<NumberFormat ss:Format="dd/mmm"/>
</Style>
<Style ss:ID="s76">
<Alignment ss:Horizontal="Center" ss:Vertical="Bottom"/>
<Borders>
<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
</Borders>
<Font ss:FontName="Calibri" x:CharSet="204" x:Family="Swiss" ss:Size="11"
ss:Color="#000000" ss:Bold="1"/>
<Interior ss:Color="#D9D9D9" ss:Pattern="Solid"/>
</Style>
</Styles>
<Worksheet ss:Name="Лист1">
<Table ss:ExpandedColumnCount="9" ss:ExpandedRowCount="101" x:FullColumns="1"
x:FullRows="1" ss:DefaultRowHeight="15">
<Column ss:AutoFitWidth="0" ss:Width="27"/>
<Column ss:Width="52.5"/>
<Column ss:Width="137.25"/>
<Column ss:Width="138"/>
<Column ss:Width="53.25"/>
<Column ss:Width="57"/>
<Column ss:Width="63"/>
<Column ss:Width="77.25"/>
<Column ss:Width="95.25"/>
<Row>
<Cell ss:StyleID="s76"><Data ss:Type="String">№</Data></Cell>
<Cell ss:StyleID="s76"><Data ss:Type="String">ЛС</Data></Cell>
<Cell ss:StyleID="s76"><Data ss:Type="String">ФИО Абонента</Data></Cell>
<Cell ss:StyleID="s76"><Data ss:Type="String">Адрес</Data></Cell>
<Cell ss:StyleID="s76"><Data ss:Type="String">Дом.КВ</Data></Cell>
<Cell ss:StyleID="s76"><Data ss:Type="String">ДОЛГ</Data></Cell>
<Cell ss:StyleID="s76"><Data ss:Type="String">ccounter</Data></Cell>
<Cell ss:StyleID="s76"><Data ss:Type="String">ТИП ПУ</Data></Cell>
<Cell ss:StyleID="s76"><Data ss:Type="String">Дата Установки ПУ</Data></Cell>
</Row>
<Row>
<Cell ss:StyleID="s69"><Data ss:Type="Number">1</Data></Cell>
<Cell ss:StyleID="s69"><Data ss:Type="Number">340054288</Data></Cell>
<Cell ss:StyleID="s69"><Data ss:Type="String">БЕКСУЛТАНОВ К. С.</Data></Cell>
<Cell ss:StyleID="s69"><Data ss:Type="String">НОВОСТРОЙКА 28 ГА</Data></Cell>
<Cell ss:StyleID="s69"><Data ss:Type="Number">271</Data></Cell>
<Cell ss:StyleID="s69"><Data ss:Type="String">108.8200</Data></Cell>
<Cell ss:StyleID="s69"><Data ss:Type="String">2015-061195</Data></Cell>
<Cell ss:StyleID="s69"><Data ss:Type="String">DDS 232</Data></Cell>
<Cell ss:StyleID="s70"><Data ss:Type="DateTime">2017-09-05T00:00:00.000</Data></Cell>
</Row>
Считываю так:
XmlDocument doc = new XmlDocument();
doc.Load(filePath);
XmlNodeList cellList = doc.SelectNodes("//Row/Cell");
Получаю пустой cellList, проверял при отладке. filePath нормальный, файл в doc загружен. Как считать все узлы ROW?
В показанном xml присутствует пространство имён по умолчанию:
xmlns="urn:schemas-microsoft-com:office:spreadsheet"
Все вложенные узлы без префикса относятся к этому пространству имён. Следовательно, в коде C# нужно обязательно указывать этот неймспейс.
var doc = new XmlDocument();
var manager = new XmlNamespaceManager(doc.NameTable);
manager.AddNamespace("ns", "urn:schemas-microsoft-com:office:spreadsheet");
doc.Load(filePath);
var cellList = doc.SelectNodes("//ns:Row/ns:Cell", manager);
Нужно создать экземпляр менеджера неймспейсов, добавить в него все необходимые пространства имён. Далее в xpath указываем префикс неймспейса. Причём, обратите внимание, указываем его у всех элементов: и Row
, и Cell
.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Возможно ли добавить в консольное приложение кнопку? Чтобы пользователь не вводил сообщение сам, а нажимал на слово и получал результатСвоеобразный...
Имеется БД MySQL, которую надо импортировать в heroku, но heroku работает только с postgresОднако есть плагин ClearDB MySQL
Нужно создать модели в Django на основе уже имеющейся БД mysqlДля этого я выполняю следующие команды:
Нужно сделать цикл для одноразовой вставки множества записей в таблицуПисал цикл по примеру из документации MySql, однако все равно получаю...