У меня проблемы с перестановкой данных в этом XML (пример и много похожих) в массив.
<?xml version="1.0" encoding="UTF-8"?> <bon>
<bonnr>10010100001361599999</bonnr>
<datum>2020-01-03T13:19:18.244+01:00</datum>
<dynamicFieldsItem>
<key>COUNTER</key>
<value>5779</value>
</dynamicFieldsItem>
<dynamicFieldsItem>
<key>CSNAME</key>
<value>User Break Over 170001</value>
</dynamicFieldsItem>
<rskabu>
<bulfnr>1</bulfnr>
<buverk></buverk>
<bupost>1</bupost>
<buart>BRU</buart>
<buartn>14112500</buartn>
<buwgrp></buwgrp>
<bumwstkz>1</bumwstkz>
<bumwsts>7.700</bumwsts>
<bumwstb>0.21</bumwstb>
<dynamicFieldsItem>
<key>ARTIKEL-LABEL</key>
<value>grün 15</value>
</dynamicFieldsItem>
<dynamicFieldsItem>
<key>CAPTURE</key>
<value>SCAN</value>
</dynamicFieldsItem>
<dynamicFieldsItem>
<key>MWSTART</key>
<value>A</value>
</dynamicFieldsItem>
<dynamicFieldsItem>
<key>MWSTKZ</key>
<value>79</value>
</dynamicFieldsItem>
<dynamicFieldsItem>
<key>W2GRP</key>
<value>113</value>
</dynamicFieldsItem>
</rskabu>
<rskabu>
<bulfnr>2</bulfnr>
<buverk></buverk>
<bupost>2</bupost>
<buart>BRU</buart>
<buartn>14112599</buartn>
<buwgrp></buwgrp>
<bumwstkz>1</bumwstkz>
<bumwsts>7.700</bumwsts>
<bumwstb>0.21</bumwstb>
<dynamicFieldsItem>
<key>ARTIKEL-LABEL</key>
<value>Glock</value>
</dynamicFieldsItem>
<dynamicFieldsItem>
<key>CAPTURE</key>
<value>SCAN</value>
</dynamicFieldsItem>
<dynamicFieldsItem>
<key>MWSTART</key>
<value>A</value>
</dynamicFieldsItem>
</rskabu>
<rskab4>
<bupost>1</bupost>
<dynamicFieldsItem>
<key>ZCC</key>
<value>30.00</value>
</dynamicFieldsItem>
<dynamicFieldsItem>
<key>CC</key>
<value>OFF</value>
</dynamicFieldsItem>
</rskab4>
<rskdwp>
<dwlfnr>1</dwlfnr>
<dwrow>0</dwrow>
<dwcol>0</dwcol>
<dwcpi>-1</dwcpi>
<dwcmd>28</dwcmd>
<dwtext>CUE</dwtext>
</rskdwp>
<rskdwp>
<dwlfnr>2</dwlfnr>
<dwrow>0</dwrow>
<dwcol>0</dwcol>
<dwcpi>-1</dwcpi>
<dwcmd>28</dwcmd>
<dwtext>END</dwtext>
</rskdwp> </bon>
Я думал, что записываю данные в разные таблицы, как показано в списках ниже , Тогда было бы легко вставить данные в базу данных.
BON
---
bonnr,datum
10010100001361599999,2020-01-03T13:19:18.244+01:00
BON_DYNAMIC
-----------
bonnr,datum,key,value
10010100001361599999,2020-01-03T13:19:18.244+01:00,COUNTER,5779
10010100001361599999,2020-01-03T13:19:18.244+01:00,CSNAME,User Break Over 170001
BON_RSKABU
----------
bonnr,datum,bulfnr,buverk,bupost,buart,buartn,buwgrp,bumwstkz,bumwsts,bumwstb
10010100001361599999,2020-01-03T13:19:18.244+01:00,1,,1,BRU,14112500,,,1,7.700,0.21
10010100001361599999,2020-01-03T13:19:18.244+01:00,2,,2,BRU,14112599,,,1,7.700,0.21
BON_RSKABU_DYN
--------------
bonnr,datum,bulfnr,key,value
10010100001361599999,2020-01-03T13:19:18.244+01:00,1,ARTIKEL-LABEL,grün 15
10010100001361599999,2020-01-03T13:19:18.244+01:00,1,CAPTURE,SCAN
10010100001361599999,2020-01-03T13:19:18.244+01:00,1,MWSTART,A
10010100001361599999,2020-01-03T13:19:18.244+01:00,1,MWSTKZ,79
10010100001361599999,2020-01-03T13:19:18.244+01:00,1,W2GRP,113
10010100001361599999,2020-01-03T13:19:18.244+01:00,2,ARTIKEL-LABEL,Glock
10010100001361599999,2020-01-03T13:19:18.244+01:00,2,CAPTURE,SCAN
10010100001361599999,2020-01-03T13:19:18.244+01:00,2,MWSTART,A
BON_RSKAB4
----------
bonnr,datum,bupost,key,value
10010100001361599999,2020-01-03T13:19:18.244+01:00,1,ZCC,30.00
10010100001361599999,2020-01-03T13:19:18.244+01:00,1,CC.OFF
BON_RSKDWP
----------
bonnr,datum,dwlfnr,dwrow,dwcol,dwcpi,dwcmd,dwtext
10010100001361599999,2020-01-03T13:19:18.244+01:00,1,0,0,-1,28,CUE
10010100001361599999,2020-01-03T13:19:18.244+01:00,1,0,0,-1,28,END
Проблема в основном связана с группировкой атрибутов из разных ветвей. Сначала я трачу некоторое время, чтобы попытаться продиктовать данные, которые будут работать для очень простого вида XML. Если бы я мог показать мне Python пример, как это сделать для примера, такого как BON_RSKABU или BON_RSKABU_DYN, я был бы очень счастлив. Проблема в том, чтобы выбрать данные из разных уровней иерархии ie и заполнить данные, даже если это происходит просто один раз.