У цій статті хотів просто сказати, а точніше зробити для себе як будемо аналізувати довільні дуже легко дані XML. Це робиться для проекту VK API в Delphi. так як в кожній, розглянутої статті по ВК AP I ми в основному отримуємо дані в форматі XML. так що для зручності ми і зробимо цей невеликий парсинг. Можна зробити у вигляді функції, у вигляді просто класу як кому зручно. Ну що приступимо. В нашій функції будемо вказувати тільки тег, між яким парсити (отримувати) дані, причому будемо вказувати його тільки назва без кутових дужок, знову ж для нашого ж зручності, знаємо між яким тегом отримати дані - написали його ім'я і всі дані отримані. Все це також можна оформити у вигляді окремого модуля, щоб в подальшому можна було використовувати в своїх проектах, де є потреба у парсинг даних.
Також хотів запропонувати для проекту VK API парсер в циклі, тобто результатом значень може бути XML. де теги повторюються, тобто масив даних - різних значень. Це теж для більш зручної роботи, щоб нам кожного разу не проходити в циклі і не забирати дані. В принципі тут нічого складного немає, в наступній статті я розповім як зробити той же самий парсер XML-файлів, тільки з використанням регулярних виразів, думаю буде працювати набагато швидше ніж цей, і можливо його тоді буде замінити даними парсером. Але зараз такий невеликий клас оголосив я. Так звичайно я створив спершу модуль (File-New-Unit)
Перша функція буде відповідати за парсер тільки одне тега, тобто вкажемо між яким тегом отримувати дані - між цим і отримаємо (якщо їх багато, однакових, то між першим знайденим). Друга функція отримує всі знайдені дані між тегом, тобто якщо даних під одним і тим же тегом багато, то воно отримає їх все. Перша функція виглядає у мене так
Для вирішення КОНКРЕТНОЮ завдання, як, наприклад, в VK API може такий підхід і згодитися на перший час, а взагалі таке «винахід велосипеда» ні до чого.
Якщо треба парсити XML, то в Delphi вже давним-давно є модуль msxml.pas - швидко і, в цілому, досить зручно.
Якщо треба зменшити розмір исходника в плані кількості рядків - NativeXML - працює спритно (принаймні мене швидкість цілком влаштовує) і знову ж зручно. Розібратися теж багато часу не потрібно. Ну і, на крайній випадок, є ще купа всяких парсілок, бібліотек, компонентів для XML - варто тільки попросити Google їх знайти.
[...] Andrey53 пише: Це робиться для проекту VK API в Delphi, так як в кожній, розглянутої статті по ВК API ми в основному отримуємо дані в форматі XML, так що для зручності ми і зробимо цей невеликий парсинг. Можна зробити у вигляді функції, ... [...]
[...] ми розглянули як нам можна краще зробити парсинг XML-даних. Так як ми дуже частина отримуємо результат у вигляді XML, то [...]
2Сергей це я привів як ще один варіант парсинга даних, а ось вже щодо розміру тут звичайно треба інше, а щодо тегів різних проблеми які? тег потрібний передаєш він тобі буде парсити, головне в цикл запустити це все справа