|
Импорт через VBA из xml
|
|||
---|---|---|---|
#18+
Добрый день! Помогите, пожалуйста, с кодом в VBA. Не могу понять, что я должен указать для моего случая в коде в значении XMLDoc.getElementsByTagName("???") Здесь код Sub ReadXML() Dim fileToOpen As Variant Dim XMLDoc As New DOMDocument Dim xmlE As IXMLDOMElement Dim XMLNode As IXMLDOMNode Dim o As Object fileToOpen = Application.GetOpenFilename XMLDoc.Load fileToOpen For Each xmlE In XMLDoc.getElementsByTagName("???") On Error Resume Next Debug.Print xmlE.getAttribute("TNAME") Debug.Print xmlE.SelectSingleNode("ACCOUNT").Text Next End Sub <Rec len="222" RecID="1"> <OPEN>01.01.2014</OPEN> <AGREE_DATE></AGREE_DATE> <AGREE_NUM></AGREE_NUM> <TNAME>//имя адрес//</TNAME> <TNAME_2>Транзит CNY</TNAME_2> <ACCOUNT>10000000000000000001</ACCOUNT> </Rec> <Rec len="234" RecID="2"> <OPEN>26.10.2013</OPEN> <AGREE_DATE></AGREE_DATE> <AGREE_NUM></AGREE_NUM> <TNAME>//имя адрес2//</TNAME> <TNAME_2>Касса</TNAME_2> <ACCOUNT>20000000000900000008</ACCOUNT> </Rec> и так далее <RecID="n" len="n"><меняются и являются началом каждой n-й строки --> ... |
|||
:
Нравится:
Не нравится:
|
|||
09.05.2016, 23:33 |
|
Импорт через VBA из xml
|
|||
---|---|---|---|
#18+
по идее XML не валидный, нет корневого элемента был бы, то надо так Код: vbnet 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2016, 09:04 |
|
Импорт через VBA из xml
|
|||
---|---|---|---|
#18+
Более полностью xml файл выглядит так Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
Модератор: Для оформления XML есть специальный тэг - FAQ в xml файле каждая запись обозначается Rec len="значение" RecID="последовательный номер" и имеет соответственно следующий номер. Получается нельзя обозначить корневой элемент таким образом, чтобы через VBA его прочитать... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2016, 23:53 |
|
Импорт через VBA из xml
|
|||
---|---|---|---|
#18+
Что за </THEADER>? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2016, 00:11 |
|
Импорт через VBA из xml
|
|||
---|---|---|---|
#18+
Shocker.Pro, Немного обрезал и не убрал до конца, а сам формат файла xml сделан по форме из Указания Банка России от 30 ноября 2014 г. N 3462-У Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2016, 00:32 |
|
Импорт через VBA из xml
|
|||
---|---|---|---|
#18+
Ну блин, ЦБР ЦБР-ом, но стандарты XML никто не отменял. Тэги внутри тэгов быть не могут Комментарии должны начинаться с "<!--" Проверяйте тут http://www.xmlvalidation.com ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2016, 00:45 |
|
Импорт через VBA из xml
|
|||
---|---|---|---|
#18+
Но и само Указание тоже стоило бы прочесть не через слово: Пример наименования (имени файла) электронного документа: предоставляемого кредитной организацией (регистрационный номер кредитной организации - 123; период, за который предоставлена информация о счетах бухгалтерского учета - с 1 января 2009 года по 31 декабря 2011 года; дата формирования файла электронного документа - 3 марта 2012 года; отсутствуют электронные документы с наименованиями (именами файлов), содержащими одинаковые значения параметров NBf, NFf, Fggggmmdd, Lggggmmdd, Cggggmmdd), - LSOZ_0123.0000_F20090101_L20111231_C20120303.000.xml ; ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2016, 00:47 |
|
Импорт через VBA из xml
|
|||
---|---|---|---|
#18+
Shocker.ProКомментарии должны начитаться с "<!--"на сайте Гаранта - да, косяк, а вот в Главбухе, например, корректно http://www.glavbukh.ru/npd/edoc/99_420245011_XA00MBO2NG ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2016, 00:52 |
|
Импорт через VBA из xml
|
|||
---|---|---|---|
#18+
тогда по идее так Код: vbnet 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2016, 08:02 |
|
Импорт через VBA из xml
|
|||
---|---|---|---|
#18+
HandKot, не хочет все равно "вытягивать"... Вложил примерный xml файл по указанному стандарту из этого Указания ЦБ, вдруг получится. Спасибо большое, кто откликнулся! ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 01:22 |
|
Импорт через VBA из xml
|
|||
---|---|---|---|
#18+
Предложенное HandKot вполне работает Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 07:39 |
|
Импорт через VBA из xml
|
|||
---|---|---|---|
#18+
AleksiieHandKot, не хочет все равно "вытягивать"... Вложил примерный xml файл по указанному стандарту из этого Указания ЦБ, вдруг получится. Спасибо большое, кто откликнулся! что-то не так сделали. Вот по Вашему файлу Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
ЗЫЖ XML чувствителен к регистру букв ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 08:19 |
|
Импорт через VBA из xml
|
|||
---|---|---|---|
#18+
Спасибо за ответ! Но у меня макрос срабатывает без ошибок и чего бы то ещё ни было, а в результате тот же пустой лист без изменений на нем. Вариант sergeyvg с возможностью выбора файла дает тот же результат. У меня office 2013, библиотека XML, v3.0 включена... В существующих подключениях после работы макроса тоже пусто... В чем может быть проблема, не могу никак понять? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2016, 00:48 |
|
Импорт через VBA из xml
|
|||
---|---|---|---|
#18+
И еще офис 64 битный... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2016, 00:53 |
|
Импорт через VBA из xml
|
|||
---|---|---|---|
#18+
Aleksiieа в результате тот же пустой листА какой результат вы ожидаете от этого макроса? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2016, 01:13 |
|
Импорт через VBA из xml
|
|||
---|---|---|---|
#18+
Вывод на лист только заданных "полей" и в обозначенном формате (текст). Чтобы уйти от ручного "импорта" через вкладку данные - импорт данных... Потом хотел добавить возможность не выбора "отдельно" файла, а обозначения папки, в которой могут находиться тысячи таких xml (на форуме этот код есть - для обозначения папки с файлами, думал, что добавить его смогу, поэтому в задаче не указывал)... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2016, 09:30 |
|
Импорт через VBA из xml
|
|||
---|---|---|---|
#18+
Shocker.Pro, Теперь понял, Debug.Print выводит текст с специальное окно - Immediate Window Спасибо! Дальше поправлю ) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2016, 09:39 |
|
|
start [/forum/topic.php?fid=61&msg=39235081&tid=2173081]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
54ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 171ms |
0 / 0 |