HTML таблица, полученная парсингом XML записать в JSON на js
Спарсил файл XML в таблицу HTML. Как вытянуть эту таблицу в файл JSON?
function read(file) {
return new Promise((res, rej) => {
let reader = new FileReader();
reader.onload = () => res(reader.result);
reader.onerror = () => rej(new Error('read error'));
reader.readAsText(file, 'Windows-1251');
});
}
async function readFile(input) {
let file = input.files[0];
const xmlstr = await read(file);
const parser = new DOMParser();
const xmlDoc = parser.parseFromString(
xmlstr,
'application/xml'
);
const tbody = document.querySelector('table').tBodies[0];
const lines = xmlDoc.querySelectorAll('Line');
for (line of lines) {
const tr = tbody.insertRow();
const product = line.querySelector('Product');
const quantity = line.querySelector('Quantity');
const emtdata000 = line.querySelector('ETM_data_000');
tr.insertCell().textContent = product.textContent;
tr.insertCell().textContent = quantity.textContent;
tr.insertCell().textContent = emtdata000.textContent;
}
}
table {
width: 80%;
margin-inline: auto;
border: 1px solid black;
border-spacing: 0;
}
th,
td {
border: 1px solid black;
}
:is(td, th):is(:nth-child(2), :nth-child(3)) {
text-align: center;
}
th {
background-color: #ccc;
}
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="style.css" />
<title>XMLLoad</title>
</head>
<body>
<input type="file" onchange="readFile(this)" /><br>
<table id="print-table">
<thead>
<tr>
<th>ТМЦ</th>
<th>Количество</th>
<th>Ед.изм.</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
<script src="script.js"></script>
</body>
</html>
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<OrderData>
<Message_Type>Order</Message_Type>
<Currency>643</Currency>
<Date>16.06.2023</Date>
<Number>328/5033511</Number>
<Contract>202/ЦВрн1/2880-2021</Contract>
<Vendor_INN>7804526950</Vendor_INN>
<Client_INN>3604082435</Client_INN>
<Client_KPP>781101001</Client_KPP>
<Client_warehouse/>
<Client_division/>
<Client_FIO>Степыгина Елена Васильевна </Client_FIO>
<Doc_comment> </Doc_comment>
<Order_status>Плановая</Order_status>
<Products>
<Line>
<IsService>false</IsService>
<ETM_Code>ETM7031108</ETM_Code>
<Manufacturer_Code>zeta42314</Manufacturer_Code>
<Product>Металлорукав в ПВХ изоляции МРПИ НГ 25 морозостойкий, черный, УХЛ1 (50 м/уп.) ЗЭТА</Product>
<Serial_Number/>
<Expiration_Date/>
<Cargo_Customs_Declaration_Number/>
<Quantity>150</Quantity>
<Delivery_Date/>
<Amount>10272.6</Amount>
<VAT_Amount>1712.1</VAT_Amount>
<ETM_data>
<ETM_data_000>006</ETM_data_000>
</ETM_data>
</Line>
<Line>
<IsService>false</IsService>
<ETM_Code>ETM2870776</ETM_Code>
<Manufacturer_Code>zeta50110</Manufacturer_Code>
<Product>Держатель шины заземл. К-188 У2 (упак.50/200шт)</Product>
<Serial_Number/>
<Expiration_Date/>
<Cargo_Customs_Declaration_Number/>
<Quantity>150</Quantity>
<Delivery_Date/>
<Amount>2539.8</Amount>
<VAT_Amount>423.3</VAT_Amount>
<ETM_data>
<ETM_data_000>796</ETM_data_000>
</ETM_data>
</Line>
<Line>
<IsService>false</IsService>
<ETM_Code>ETM2767800</ETM_Code>
<Manufacturer_Code>000001435</Manufacturer_Code>
<Product>Провод силовой ПУГВнг(А)-LS 1х6 желто зеленый ТРТСмногопроволо чный</Product>
<Serial_Number/>
<Expiration_Date/>
<Cargo_Customs_Declaration_Number/>
<Quantity>60</Quantity>
<Delivery_Date/>
<Amount>3251.52</Amount>
<VAT_Amount>541.92</VAT_Amount>
<ETM_data>
<ETM_data_000>006</ETM_data_000>
</ETM_data>
</Line>
<Line>
<IsService>false</IsService>
<ETM_Code>ETM9716501</ETM_Code>
<Manufacturer_Code>40830</Manufacturer_Code>
<Product>Наконечник ТМЛ 6-6-4 луженый (КВТ)</Product>
<Serial_Number/>
<Expiration_Date/>
<Cargo_Customs_Declaration_Number/>
<Quantity>300</Quantity>
<Delivery_Date/>
<Amount>2541.6</Amount>
<VAT_Amount>423.6</VAT_Amount>
<ETM_data>
<ETM_data_000>796</ETM_data_000>
</ETM_data>
</Line>
<Line>
<IsService>false</IsService>
<ETM_Code>ETM4017820</ETM_Code>
<Manufacturer_Code>zeta41616</Manufacturer_Code>
<Product>Скоба двухлапковая СД 25-26</Product>
<Serial_Number/>
<Expiration_Date/>
<Cargo_Customs_Declaration_Number/>
<Quantity>300</Quantity>
<Delivery_Date/>
<Amount>932.4</Amount>
<VAT_Amount>155.4</VAT_Amount>
<ETM_data>
<ETM_data_000>796</ETM_data_000>
</ETM_data>
</Line>
<Line>
<IsService>false</IsService>
<ETM_Code>ETM14350013</ETM_Code>
<Manufacturer_Code>43Б25У134Н</Manufacturer_Code>
<Product>Бирка У-134 квадратная</Product>
<Serial_Number/>
<Expiration_Date/>
<Cargo_Customs_Declaration_Number/>
<Quantity>300</Quantity>
<Delivery_Date/>
<Amount>475.2</Amount>
<VAT_Amount>79.2</VAT_Amount>
<ETM_data>
<ETM_data_000>796</ETM_data_000>
</ETM_data>
</Line>
<Line>
<IsService>false</IsService>
<ETM_Code>ETM4037044</ETM_Code>
<Manufacturer_Code>an-1-06</Manufacturer_Code>
<Product>Наклейка Земля диаметр 30мм PROxima</Product>
<Serial_Number/>
<Expiration_Date/>
<Cargo_Customs_Declaration_Number/>
<Quantity>300</Quantity>
<Delivery_Date/>
<Amount>586.8</Amount>
<VAT_Amount>97.8</VAT_Amount>
<ETM_data>
<ETM_data_000>796</ETM_data_000>
</ETM_data>
</Line>
<Line>
<IsService>false</IsService>
<ETM_Code>ETM9861287</ETM_Code>
<Manufacturer_Code>35341HDZ</Manufacturer_Code>
<Product>Лоток перфорированный 100х100х3000мм горячеоцинкованный</Product>
<Serial_Number/>
<Expiration_Date/>
<Cargo_Customs_Declaration_Number/>
<Quantity>72</Quantity>
<Delivery_Date/>
<Amount>85472.06</Amount>
<VAT_Amount>14245.34</VAT_Amount>
<ETM_data>
<ETM_data_000>006</ETM_data_000>
</ETM_data>
</Line>
<Line>
<IsService>false</IsService>
<ETM_Code>ETM9676003</ETM_Code>
<Manufacturer_Code>35522</Manufacturer_Code>
<Product>Крышка на лоток 100 мм L=3000мм с заземлением</Product>
<Serial_Number/>
<Expiration_Date/>
<Cargo_Customs_Declaration_Number/>
<Quantity>72</Quantity>
<Delivery_Date/>
<Amount>9109.15</Amount>
<VAT_Amount>1518.19</VAT_Amount>
<ETM_data>
<ETM_data_000>006</ETM_data_000>
</ETM_data>
</Line>
<Line>
<IsService>false</IsService>
<ETM_Code>ETM1222484</ETM_Code>
<Manufacturer_Code>37332K</Manufacturer_Code>
<Product>Крышка-ответвитель TSS основание 100 Н100 в комплекте с крепежными элементами и соединительными пластинами</Product>
<Serial_Number/>
<Expiration_Date/>
<Cargo_Customs_Declaration_Number/>
<Quantity>12</Quantity>
<Delivery_Date/>
<Amount>43913.66</Amount>
<VAT_Amount>7318.94</VAT_Amount>
<ETM_data>
<ETM_data_000>778</ETM_data_000>
</ETM_data>
</Line>
<Line>
<IsService>false</IsService>
<ETM_Code>ETM5018445</ETM_Code>
<Manufacturer_Code>37172K</Manufacturer_Code>
<Product>Ответвитель TDS T-образный вертикальный универсальный основание 100 H100 крепежные элементы и соединительные пластины</Product>
<Serial_Number/>
<Expiration_Date/>
<Cargo_Customs_Declaration_Number/>
<Quantity>6</Quantity>
<Delivery_Date/>
<Amount>25552.3</Amount>
<VAT_Amount>4258.72</VAT_Amount>
<ETM_data>
<ETM_data_000>778</ETM_data_000>
</ETM_data>
</Line>
<Line>
<IsService>false</IsService>
<ETM_Code>ETM9700014</ETM_Code>
<Manufacturer_Code>38322</Manufacturer_Code>
<Product>Крышка на ответвитель TDS Т-образный вертикальный основание 100мм универсальная</Product>
<Serial_Number/>
<Expiration_Date/>
<Cargo_Customs_Declaration_Number>10131010/300423/3152271/1</Cargo_Customs_Declaration_Number>
<Quantity>6</Quantity>
<Delivery_Date/>
<Amount>4430.95</Amount>
<VAT_Amount>738.49</VAT_Amount>
<ETM_data>
<ETM_data_000>796</ETM_data_000>
</ETM_data>
</Line>
<Line>
<IsService>false</IsService>
<ETM_Code>ETM1858314</ETM_Code>
<Manufacturer_Code>36821K</Manufacturer_Code>
<Product>Угол CD 90 вертикальный внешний 90 градусов 100/100 в комплекте с крепежными элементами и соединительными пластинами</Product>
<Serial_Number/>
<Expiration_Date/>
<Cargo_Customs_Declaration_Number/>
<Quantity>12</Quantity>
<Delivery_Date/>
<Amount>15885.07</Amount>
<VAT_Amount>2647.51</VAT_Amount>
<ETM_data>
<ETM_data_000>778</ETM_data_000>
</ETM_data>
</Line>
<Line>
<IsService>false</IsService>
<ETM_Code>ETM9678026</ETM_Code>
<Manufacturer_Code>38242</Manufacturer_Code>
<Product>Крышка на угол CD-90 100 мм вертикальный внешний 90 градусов</Product>
<Serial_Number/>
<Expiration_Date/>
<Cargo_Customs_Declaration_Number>10131010/020223/3037925/1</Cargo_Customs_Declaration_Number>
<Quantity>12</Quantity>
<Delivery_Date/>
<Amount>5081.47</Amount>
<VAT_Amount>846.91</VAT_Amount>
<ETM_data>
<ETM_data_000>796</ETM_data_000>
</ETM_data>
</Line>
<Line>
<IsService>false</IsService>
<ETM_Code>ETM9677881</ETM_Code>
<Manufacturer_Code>BBL5010</Manufacturer_Code>
<Product>Консоль с опорой ML 100 мм</Product>
<Serial_Number/>
<Expiration_Date/>
<Cargo_Customs_Declaration_Number>10131010/180223/3058479/2</Cargo_Customs_Declaration_Number>
<Quantity>24</Quantity>
<Delivery_Date/>
<Amount>8379.65</Amount>
<VAT_Amount>1396.61</VAT_Amount>
<ETM_data>
<ETM_data_000>796</ETM_data_000>
</ETM_data>
</Line>
<Line>
<IsService>false</IsService>
<ETM_Code>ETM9677882</ETM_Code>
<Manufacturer_Code>BBL5020</Manufacturer_Code>
<Product>Консоль с опорой ML 200 мм</Product>
<Serial_Number/>
<Expiration_Date/>
<Cargo_Customs_Declaration_Number>10131010/121222/5001629/1</Cargo_Customs_Declaration_Number>
<Quantity>24</Quantity>
<Delivery_Date/>
<Amount>9780.48</Amount>
<VAT_Amount>1630.08</VAT_Amount>
<ETM_data>
<ETM_data_000>796</ETM_data_000>
</ETM_data>
</Line>
<Line>
<IsService>false</IsService>
<ETM_Code>ETM2870649</ETM_Code>
<Manufacturer_Code>BPM2904</Manufacturer_Code>
<Product>Профиль П-образный PSM L=400 толщина 2.5мм</Product>
<Serial_Number/>
<Expiration_Date/>
<Cargo_Customs_Declaration_Number/>
<Quantity>24</Quantity>
<Delivery_Date/>
<Amount>4255.78</Amount>
<VAT_Amount>709.3</VAT_Amount>
<ETM_data>
<ETM_data_000>796</ETM_data_000>
</ETM_data>
</Line>
<Line>
<IsService>false</IsService>
<ETM_Code>ETM9676035</ETM_Code>
<Manufacturer_Code>37501R</Manufacturer_Code>
<Product>Плaстинa для элeктричeскoгo кoнтaктa мeдь 37501 ДКС</Product>
<Serial_Number/>
<Expiration_Date/>
<Cargo_Customs_Declaration_Number/>
<Quantity>150</Quantity>
<Delivery_Date/>
<Amount>8348.4</Amount>
<VAT_Amount>1391.4</VAT_Amount>
<ETM_data>
<ETM_data_000>796</ETM_data_000>
</ETM_data>
</Line>
<Line>
<IsService>false</IsService>
<ETM_Code>ETM9752624</ETM_Code>
<Manufacturer_Code>CM010610</Manufacturer_Code>
<Product>Винт с крестообразным шлицем М6х10 СМ010610</Product>
<Serial_Number/>
<Expiration_Date/>
<Cargo_Customs_Declaration_Number>10702070/171222/3452774/1</Cargo_Customs_Declaration_Number>
<Quantity>600</Quantity>
<Delivery_Date/>
<Amount>1562.4</Amount>
<VAT_Amount>260.4</VAT_Amount>
<ETM_data>
<ETM_data_000>796</ETM_data_000>
</ETM_data>
</Line>
<Line>
<IsService>false</IsService>
<ETM_Code>ETM9773132</ETM_Code>
<Manufacturer_Code>CM080625</Manufacturer_Code>
<Product>Болт с шестигранной головкой М6х25</Product>
<Serial_Number/>
<Expiration_Date/>
<Cargo_Customs_Declaration_Number>10702070/261021/0347179/5</Cargo_Customs_Declaration_Number>
<Quantity>600</Quantity>
<Delivery_Date/>
<Amount>1929.6</Amount>
<VAT_Amount>321.6</VAT_Amount>
<ETM_data>
<ETM_data_000>796</ETM_data_000>
</ETM_data>
</Line>
<Line>
<IsService>false</IsService>
<ETM_Code>ETM9752636</ETM_Code>
<Manufacturer_Code>CM100600</Manufacturer_Code>
<Product>Гайка М6 с насечкой препятствующей откручиванию CM100600 ДКС</Product>
<Serial_Number/>
<Expiration_Date/>
<Cargo_Customs_Declaration_Number>10702070/260123/3036675/2</Cargo_Customs_Declaration_Number>
<Quantity>1200</Quantity>
<Delivery_Date/>
<Amount>2750.4</Amount>
<VAT_Amount>458.4</VAT_Amount>
<ETM_data>
<ETM_data_000>796</ETM_data_000>
</ETM_data>
</Line>
<Line>
<IsService>false</IsService>
<ETM_Code>ETM9751868</ETM_Code>
<Manufacturer_Code>CM120600</Manufacturer_Code>
<Product>Шайба М6 кузовная DIN9021 CM120600 ДКС</Product>
<Serial_Number/>
<Expiration_Date/>
<Cargo_Customs_Declaration_Number>10702070/171222/3452989/2</Cargo_Customs_Declaration_Number>
<Quantity>1200</Quantity>
<Delivery_Date/>
<Amount>1641.6</Amount>
<VAT_Amount>273.6</VAT_Amount>
<ETM_data>
<ETM_data_000>796</ETM_data_000>
</ETM_data>
</Line>
<Line>
<IsService>false</IsService>
<ETM_Code>ETM9752635</ETM_Code>
<Manufacturer_Code>CM030508</Manufacturer_Code>
<Product>Винт М5х8 для обеспечения электрического контакта крышек СМ030508 CM010620 ДКС</Product>
<Serial_Number/>
<Expiration_Date/>
<Cargo_Customs_Declaration_Number>10702070/171222/3452993/1</Cargo_Customs_Declaration_Number>
<Quantity>300</Quantity>
<Delivery_Date/>
<Amount>1216.8</Amount>
<VAT_Amount>202.8</VAT_Amount>
<ETM_data>
<ETM_data_000>796</ETM_data_000>
</ETM_data>
</Line>
<Line>
<IsService>false</IsService>
<ETM_Code>ETM9752634</ETM_Code>
<Manufacturer_Code>CM020860</Manufacturer_Code>
<Product>Болт с шестигранной головкой и неполной резьбой М8х60 (50шт)</Product>
<Serial_Number/>
<Expiration_Date/>
<Cargo_Customs_Declaration_Number>10702070/180322/3101010/2</Cargo_Customs_Declaration_Number>
<Quantity>300</Quantity>
<Delivery_Date/>
<Amount>2696.4</Amount>
<VAT_Amount>449.4</VAT_Amount>
<ETM_data>
<ETM_data_000>796</ETM_data_000>
</ETM_data>
</Line>
<Line>
<IsService>false</IsService>
<ETM_Code>ETM9760331</ETM_Code>
<Manufacturer_Code>CM080830</Manufacturer_Code>
<Product>Болт шестигранный М8х30(80шт)</Product>
<Serial_Number/>
<Expiration_Date/>
<Cargo_Customs_Declaration_Number>10702070/160922/3308404/4</Cargo_Customs_Declaration_Number>
<Quantity>320</Quantity>
<Delivery_Date/>
<Amount>2119.68</Amount>
<VAT_Amount>353.28</VAT_Amount>
<ETM_data>
<ETM_data_000>796</ETM_data_000>
</ETM_data>
</Line>
<Line>
<IsService>false</IsService>
<ETM_Code>ETM9752637</ETM_Code>
<Manufacturer_Code>CM100800</Manufacturer_Code>
<Product>Гайка DIN 6923 М8 с насечкой препятствующей откручиванию (100шт)</Product>
<Serial_Number/>
<Expiration_Date/>
<Cargo_Customs_Declaration_Number>10702070/151222/3450639/1</Cargo_Customs_Declaration_Number>
<Quantity>900</Quantity>
<Delivery_Date/>
<Amount>2613.6</Amount>
<VAT_Amount>435.6</VAT_Amount>
<ETM_data>
<ETM_data_000>796</ETM_data_000>
</ETM_data>
</Line>
<Line>
<IsService>false</IsService>
<ETM_Code>ETM9711424</ETM_Code>
<Manufacturer_Code>CM120800</Manufacturer_Code>
<Product>Шайба М8 кузовная DIN9021</Product>
<Serial_Number/>
<Expiration_Date/>
<Cargo_Customs_Declaration_Number>10702070/171222/3452989/2</Cargo_Customs_Declaration_Number>
<Quantity>900</Quantity>
<Delivery_Date/>
<Amount>2440.8</Amount>
<VAT_Amount>406.8</VAT_Amount>
<ETM_data>
<ETM_data_000>796</ETM_data_000>
</ETM_data>
</Line>
<Line>
<IsService>false</IsService>
<ETM_Code>ETM9766569</ETM_Code>
<Manufacturer_Code>CM021050</Manufacturer_Code>
<Product>Болт с шестигранной головкой М10х50 (50 шт)</Product>
<Serial_Number/>
<Expiration_Date/>
<Cargo_Customs_Declaration_Number>10702070/110722/3210933/5</Cargo_Customs_Declaration_Number>
<Quantity>300</Quantity>
<Delivery_Date/>
<Amount>4554</Amount>
<VAT_Amount>759</VAT_Amount>
<ETM_data>
<ETM_data_000>796</ETM_data_000>
</ETM_data>
</Line>
<Line>
<IsService>false</IsService>
<ETM_Code>ETM169991192</ETM_Code>
<Manufacturer_Code>CM101000</Manufacturer_Code>
<Product>Гайка с насечкой препятствующей откручиванию М10 СМ101000</Product>
<Serial_Number/>
<Expiration_Date/>
<Cargo_Customs_Declaration_Number>10702070/170323/3109615/1</Cargo_Customs_Declaration_Number>
<Quantity>300</Quantity>
<Delivery_Date/>
<Amount>1699.2</Amount>
<VAT_Amount>283.2</VAT_Amount>
<ETM_data>
<ETM_data_000>796</ETM_data_000>
</ETM_data>
</Line>
<Line>
<IsService>false</IsService>
<ETM_Code>ETM9752764</ETM_Code>
<Manufacturer_Code>CM121000</Manufacturer_Code>
<Product>Шaйбa М10 кузoвнaя DIN9021 oцинкoвaннaя СМ121000</Product>
<Serial_Number/>
<Expiration_Date/>
<Cargo_Customs_Declaration_Number>10702070/120722/3211143/7</Cargo_Customs_Declaration_Number>
<Quantity>300</Quantity>
<Delivery_Date/>
<Amount>1573.2</Amount>
<VAT_Amount>262.2</VAT_Amount>
<ETM_data>
<ETM_data_000>796</ETM_data_000>
</ETM_data>
</Line>
<Line>
<IsService>false</IsService>
<ETM_Code>ETM5911824</ETM_Code>
<Manufacturer_Code>19272</Manufacturer_Code>
<Product>Хомут 300х4.8мм черный нейлон (100шт)</Product>
<Serial_Number/>
<Expiration_Date/>
<Cargo_Customs_Declaration_Number>10702070/060523/3183405/01</Cargo_Customs_Declaration_Number>
<Quantity>3</Quantity>
<Delivery_Date/>
<Amount>506.95</Amount>
<VAT_Amount>84.49</VAT_Amount>
<ETM_data>
<ETM_data_000>778</ETM_data_000>
</ETM_data>
</Line>
<Line>
<IsService>false</IsService>
<ETM_Code>ETM6851172</ETM_Code>
<Manufacturer_Code>61394</Manufacturer_Code>
<Product>Муфта вводная ВМУ-25 (Fortisflex)</Product>
<Serial_Number/>
<Expiration_Date/>
<Cargo_Customs_Declaration_Number>10702070/250423/3166818</Cargo_Customs_Declaration_Number>
<Quantity>40</Quantity>
<Delivery_Date/>
<Amount>5321.76</Amount>
<VAT_Amount>886.96</VAT_Amount>
<ETM_data>
<ETM_data_000>796</ETM_data_000>
</ETM_data>
</Line>
<Line>
<IsService>false</IsService>
<ETM_Code>ETM9861274</ETM_Code>
<Manufacturer_Code>37039HDZ</Manufacturer_Code>
<Product>Цинкoвaя крaскa-спрeй 400 мл 37039HDZ</Product>
<Serial_Number/>
<Expiration_Date/>
<Cargo_Customs_Declaration_Number>10013160/251222/3628399/3</Cargo_Customs_Declaration_Number>
<Quantity>3</Quantity>
<Delivery_Date/>
<Amount>5710.18</Amount>
<VAT_Amount>951.7</VAT_Amount>
<ETM_data>
<ETM_data_000>796</ETM_data_000>
</ETM_data>
</Line>
</Products>
</OrderData>