У меня есть xml-данные, имеющие несколько строк, и я не обрабатываю определенную обработку в каждой строке. Но у меня были проблемы в выборку каждой строки с тегами <Row>
для </Row>
Игнорирование новых строк в регулярном выражении python
<Row ss:AutoFitHeight="0">
<Cell ss:StyleID="s69"><Data ss:Type="String">LcolDefs:</Data></Cell>
<Cell ss:StyleID="s69"><Data ss:Type="String">Lkeywords:</Data></Cell>
<Cell ss:StyleID="s69"><Data ss:Type="String">TestProcedure</Data></Cell>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
</Row>
<Row ss:AutoFitHeight="0">
<Cell ss:StyleID="s71"><Data ss:Type="String">LsetupTest:NMTA-1772</Data></Cell>
<Cell ss:StyleID="s72"><Data ss:Type="String">DROP4</Data></Cell>
<Cell ss:StyleID="s71"><Data ss:Type="String">TEX::stepCatch log::log notice "start NMTA-1772"</Data></Cell>
<Cell ss:StyleID="s73"/>
<Cell ss:StyleID="s73"/>
<Cell ss:StyleID="s73"/>
<Cell ss:StyleID="s73"/>
<Cell ss:StyleID="s73"/>
<Cell ss:StyleID="s73"/>
<Cell ss:StyleID="s73"/>
<Cell ss:StyleID="s73"/>
<Cell ss:StyleID="s73"/>
<Cell ss:StyleID="s73"/>
<Cell ss:StyleID="s73"/>
<Cell ss:StyleID="s73"/>
<Cell ss:StyleID="s73"/>
<Cell ss:StyleID="s73"/>
<Cell ss:StyleID="s73"/>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
</Row>
<Row ss:AutoFitHeight="0" ss:StyleID="s74">
<Cell ss:StyleID="s69"><Data ss:Type="String">LcolDefs:</Data></Cell>
<Cell ss:StyleID="s69"><Data ss:Type="String">Lkeywords:</Data></Cell>
<Cell ss:StyleID="s69"><Data ss:Type="String">TestProcedure</Data></Cell>
<Cell ss:StyleID="s75"><Data ss:Type="String">Ljoin:Host</Data></Cell>
<Cell ss:StyleID="s75"><Data ss:Type="String">Ljoin:Port</Data></Cell>
<Cell ss:StyleID="s76"><Data ss:Type="String">Lparam:typeGroup</Data></Cell>
<Cell ss:StyleID="s76"><Data ss:Type="String">Lparam:ipAddress</Data></Cell>
<Cell ss:StyleID="s76"><Data ss:Type="String">Lparam:connectionType</Data></Cell>
<Cell ss:StyleID="s76"><Data ss:Type="String">Lparam:port</Data></Cell>
<Cell ss:StyleID="s76"><Data ss:Type="String">Lparam:username</Data></Cell>
<Cell ss:StyleID="s76"><Data ss:Type="String">Lparam:password</Data></Cell>
<Cell ss:StyleID="s76"><Data ss:Type="String">Lparam:id</Data></Cell>
<Cell ss:StyleID="s77"><Data ss:Type="String">Lparam:-code</Data></Cell>
<Cell ss:StyleID="s77"><Data ss:Type="String">Lparam:-pollGetNc</Data></Cell>
<Cell ss:StyleID="s77"><Data ss:Type="String">Lparam:-checkNe</Data></Cell>
<Cell ss:StyleID="s77"><Data ss:Type="String">Lparam:-checkDup</Data></Cell>
<Cell ss:StyleID="s77"><Data ss:Type="String">Lparam:-initializeVar</Data></Cell>
<Cell ss:StyleID="s77"><Data ss:Type="String">Lparam:-convertToJson</Data></Cell>
<Cell ss:StyleID="s70"/>
<Cell ss:StyleID="s70"/>
</Row>
Я играл с re.findAll, чтобы получить список строк мудрыми данных, но либо он не выборки данных copmplete или извлечения полные данные только в единый индекс списка
Пытаюсь с комбинациями, как:
re.findall('<Row.*(?:.|\n)+</Row>', table) re.findall('<Row(?:.|\n)?[^</Row>]*', table)
Но не работает ..
Можете ли вы предоставить образец, как ваш ожидаемый результат должен быть? –
@Ahsanul Haque: это должен быть список, содержащий данные между каждым
тегами. В фрагменте данных у нас есть 3 строки, поэтому я ожидаю, что 3 элемента списка переносят данные для каждой строки. –
Dcode
Почему бы вам не использовать SAX-парсер или DOM с XPath? – clemens