|
|
|
| Добрый день, Уважаемые!
Возникла горячая необходимасть написать парсер на VBA по разбору XML-файлов. Также необходимо сформировать стандартную по W3C схему (XSD). Входные файлы должны иметь приблизительный вид:
<xml version="1.0" encoding="UTF-8">
<DTSHD>
<row
n='1' kod='12345678'
/>
</DTSHD>
<DTSDep>
<row
n='1' kod='12345678'
/>
</DTSDep>
<DTSSu>
<row
nn='1' kod='12345678'
/>
</DTSSu>
</xml>
Если вы заметели, файл содержит в себе записи, которые должны разпределиться в разные (3) таблицы. И ещё записей может быть большое кол-во до 300 000. Стоимость выполнения данной работы оставляю на ваше усмотрение из-за срочности её выполнения. Жду предложения... | |
|
| |
|
|
|
| так парсер есть уже написанный :)
ну, в смысле инструмент есть
в референсах включите библиотеку MIcrosoft XML доступной версии
станут доступны объекты XML, например, опишете их
Dim root As IXMLDOMNode
Dim elm As IXMLDOMElement
Dim value As IXMLDOMElement
Dim doc As New DOMDocument
и будете использовать
XPath ом будете вытаскивать нуную инфу, например
'-- попытка сохранить это значение в usrxml
Set elm = root.selectSingleNode("//report[@id='" & repid & "']/args/arg[@alias='" & Trim(UCase(arg(0))) & "']")
|
XSD тоже пользовал
не обещаю (праздники, гости всётаки), но более подробное ТЗ можете выслать на silich@mail.ru | |
|
| |
|
|
|
| Разве у DOMDocument нет ограничения на объём? | |
|
| |
|
|
|
| возможно есть
но эксель 2007й как то с этим живёт? :)
осталось только попробовать | |
|
| |
|
|
|
| Я разбираю счета МТС размером 20 мегов, без проблем | |
|
| |
|
|
|
|
|
| 20 мб? а сколько записей и скольно полей и за какое время обрабатываються? | |
|
| |
|
|
|
| там структура не регулярная
примерно так
шапка счета (номер, дата, сумма по счету, кому от кого, реквизиты и т.д.)
сводная по расходам по телефонам (номер, сумма...)
расходы по телефону (номер, номер СИМ, общая сумма)
расходы по телефону по направлениям (смс, входящие, межгород и т.д. + услуги)
расходы по телефонам по звонкам (когда, куда/откуда, тип, время, сумма)
подвал счета
счет-фактура
|
телефонов в этом счете около 200
кол-во записей по звонкам (самая объемная часть) ну примерно 150 тыс.
но я обрабатываю не все, и кроме того еще идет постоянно обращение к БД на предмет проверки наличия данных в справочниках и добавления туда данных если их там нет.
обработка идет около 2-х минут | |
|
| |