Как стать автором
Обновить
4.58

XML *

Расширяемый язык разметки

Сначала показывать
Порог рейтинга
Уровень сложности

Работа с XML в C#

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров3.6K

Привет, Хабр!

Обработка XML-данных остаётся актуальной задачей несмотря на появление более крутых технологий для работы с данными. XML — это все еще гибкий и мощный инструмент для структурирования данных, который используется в самых разнообразных приложениях.

В статье рассмотрим как работать с XML в C#.

Читать далее
Всего голосов 5: ↑5 и ↓0+9
Комментарии17

Новости

Pet проект. Разделитель PDF документов

Уровень сложностиПростой
Время на прочтение20 мин
Количество просмотров6.2K

Привет, молодые успешные!

Как часто вы работаете с PDF документами? Случалось ли вам сталкиваться с проблемой монолитности этого формата? Я часто сталкивался с такой проблемой, когда мне требовалось лишь несколько листов из всего документа, например чтобы отправить их по почте. Да можно воспользоваться бесплатными онлайн сервисами которых полно в интернете...

Читать далее
Всего голосов 5: ↑5 и ↓0+7
Комментарии30

LibreOffice под микроскопом: создаём одноклеточное расширение

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров3.6K

В своё время для создания расширения к LibreOffice (LO) мне пришлось перелопатить кучу форумов и документации. Информации много, но она разбросана про крупицам. А когда если не знаешь, с какой стороны подступиться, на завершение проекта может уйти много времени.

В этой статье мы соберём и запустим минимально возможное расширение с условно полезной нагрузкой. Всё, что оно будет делать — выделять весь текст в окне редактора при нажатии на единственный пункт созданного нами меню.

Надеюсь, cозданный в статье шаблон поможет снизить порог входа и сэкономить время тем, кто захочет добавить свой функционал в бесплатный офисный пакет. Я сосредоточусь на практике, объясняя технические детали лишь там, где это необходимо.

Давайте разберёмся, что к чему
Всего голосов 23: ↑23 и ↓0+23
Комментарии6

Как увеличить шрифт так, чтобы контейнер не поехал? Адаптация UI/UX для людей с проблемами зрения в XML и Compose

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров2K

Я — Денис, Android-разработчик в «Лайв Тайпинге». В этой статье я продолжу рассказывать о современных подходах разработки адаптивного UI /UX для людей с ограниченными возможностями, разных национальностей и особенностями развития. В этой статьей я расскажу про разработку интерфейсов в XML и Compose для варьирующего размера шрифта. А также покажу почему атрибут contentDescription так важен.

Читать далее
Всего голосов 15: ↑15 и ↓0+15
Комментарии3

Истории

Разработка Tizen-приложения для Samsung Smart Signage Platform(SSSP): гайд для js-разработчиков

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров1.6K

В этой статье я хочу рассказать о своем увлекательном путешествии в мир ОС Tizen. В ней я постараюсь подробно описать не только основные шаги по установке Tizen Studio и созданию проекта, но и поделюсь с вами ценными практическими советами по разработке приложений, освещая ключевые аспекты работы с интерфейсом пользователя и эффективного тестирования.

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии2

Двигай рукой справа налево: адаптация интерфейса в Android приложении под RTL в XML и Jetpack Compose

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров1K

В общении важно уважать привычки и культурный контекст людей. Это относится и к мобильным приложениям. В статье рассказываю о культурном аспекте — чтении.

Рассмотрим как адаптировать интерфейс под RTL в XML и Jetpack Compose.

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Парсер бинарных данных с WPF визуализацией в виде дерева структур и их полей. Структура, управляемая данными

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров4.5K

Как известно нет ничего более постоянного чем временное. Нам нужно было сделать по возможности простую программу для визуализации сложных структур бинарных данных, считанных из разных типов-версий устройств.

Адаптированный проект для публичного использования, рабочий на Гите, компилируется в простой exe-файл. Можно скачать как exe-файл, если доверяете своему антивирусу.  Надеюсь, кому-то пригодится. Но чтобы начать пользоваться надо научиться писать XАML определения вложенных структур, по которым работает парсер. Ссылка в конце статьи.

Не будет никаких модных слов, только то, что нужно для работы.

Читать далее
Всего голосов 11: ↑11 и ↓0+11
Комментарии6

Визуальный и интерактивный отчёт матрицы коллизий из Autodesk Navisworks в Microsoft Power BI

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров3.6K

В архитектурно-строительной сфере с появлением BIM-технологий всё больше приходится работать с данными, анализировать их и визуализировать для наглядности и понимания. При проектировании зданий и сооружений большое внимание уделяется качеству проектных решений, в том числе предотвращению коллизий на строительной площадке. Работая с BIM-моделями мы можем более качественно и заблаговременно получать информацию о потенциальных коллизиях. Полученные данные необходимо анализировать и принимать в работу, а также визуализировать для донесения более широкому кругу людей, в том числе.

Эта статья является более расширенной версией поста с Dzen про формирование динамической матрицы коллизий. Судя по обратной связи, многим не хватило более подробного раскрытия процесса импорта и преобразования отчёта .xml в Power BI и дальнейшая работа с данными. В этой статье я постараюсь дать более подробный гайд, но также освещу весь процесс начиная с формирования поисковых наборов (Search Sets) в Autodesk Navisworks для более целостной картины.

В конце должны получить примерно такой результат...

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии2

Как и зачем мы парсим XML

Уровень сложностиПростой
Время на прочтение15 мин
Количество просмотров7.9K

Большинство разработчиков рано или поздно сталкиваются с XML. Этот язык разметки настолько глубоко вошел в нашу жизнь, что сложно представить систему, в которой не используется он сам или его подмножества. Разбор XML - достаточно типовая задача, но даже в ней можно выделить несколько основных подходов. В этой статье мы хотим рассказать, зачем нам потребовалось парсить XML, какие подходы мы опробовали, а заодно продемонстрировать замеры производительности для самых популярных реализаций на C++.

Читать далее
Всего голосов 12: ↑10 и ↓2+11
Комментарии13

Стандарт JDF простыми словами

Уровень сложностиПростой
Время на прочтение15 мин
Количество просмотров1.9K

Организация CIP4 разработала стандарт JDF для автоматизации производственных процессов в печатной индустрии. Давайте подробнее рассмотрим сам формат и сегодняшнее состояние стандарта JDF.

Читать далее
Всего голосов 6: ↑6 и ↓0+6
Комментарии2

Когда парсеры URL-адресов расходятся (CVE-2023-38633)

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров4.4K

Обнаружение и разбор уязвимости CVE-2023-38633 в librsvg, заключающейся в ситуации, когда две реализации URL-парсера (Rust и Glib) расходятся в парсинге схемы файла, создавая уязвимость к атаке обхода каталога.
Читать дальше →
Всего голосов 51: ↑51 и ↓0+51
Комментарии2

XML (SLD) схемы для Geoserver

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров1.1K

Геоинформационные системы тема крайне обширная и довольно полезная. Для создания даже маленькой карты, нужно приложить большое количество сил, даже при использовании такого Opensource проекта как Geoserver. Одним из этапов создания красивой карты есть стилизация геоданных. В Geoserver для стилизации используются SLD схемы на основе XML, об этих схемах и пойдет речь.

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

JSON и XML для новичков

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров24K

Краткое описание понятий json и xml, а также работа с ними на языке python.

Всем привет! Это моя первая статья, немного волнительно, но потными ладошками все же пишу. Идея написания пришла ко мне после задачи на работе, которая была связана с направлением xml - файлов в ЦБ. Думаю, многие аналитики, работающие в банке, сталкивались или еще столкнутся с подобными задачами, поэтому хочу помочь будущим поколениям.

Читать далее
Всего голосов 19: ↑8 и ↓110
Комментарии9

Ближайшие события

Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург
Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область

XPath — примеры запросов в html для парсинга сайта

Время на прочтение9 мин
Количество просмотров37K

Парсим данные с сайтов при помощи XPath и Screaming Frog без помощи программистов. Синтаксис XPath для выбора, ссылка на удобное расширение для извлечения пути, примеры для парсинга любых данных + запись моего мастер-класса в гостях у Михаила Шакина.

Читать далее
Всего голосов 8: ↑6 и ↓2+6
Комментарии4

DesktopETL — кросс-платформенный прототип ETL-системы, или как регулярно загружать XML/JSON и сохранять в XLS/CSV

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров2.2K
image

Идея моего домашнего проекта началась с простой, на первый взгляд, задачи: с потребности конвертировать файлы формата XML в формат XLS (или CSV) для последующего анализа. И я был наивен, чтобы попробовать решение «в лоб» и с помощью Excel импортировать богатый внутренний мир SAP Business Objects, описанный в иерархической структуре XML, в табличную форму, — и примерно через час мое сознание, в очередной раз выдав исключение о переполнении памяти, подключило опыт, который намекнул, что иерархические структуры заранее неизвестной глубины проще всего обрабатывать посредством рекурсии. Так появился лаконичный скрипт на Python. Потом еще один. И еще. Потом скрипты пошли в массы среди коллег по цеху. Появились фантазии и мечты, например возможность каждые пять минут забирать XML (или JSON) из кафки (Apache Kafka), трансформировать на лету и класть, например, в DWH. Вполне ожидаемо, что была масса вопросов к скриптам и просьба «быстренько поправить». И в какой-то момент, как в том классическом анекдоте про «закопанную стюардессу», я понял, что хватит… Так и появился MVP, который я хотел бы представить в этой статье.
Читать дальше →
Всего голосов 4: ↑3 и ↓1+2
Комментарии4

Под капотом Госуслуг: про СМЭВ3 от первого лица

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров25K

Привет ИТ-сообщество! Я Анастасия Пятько, аналитик-внедренец из РТЛабс. Это компания, которая развивает всем известные Госуслуги и пытается облегчить нашу бюрократическую жизнь.

Недавно мне довелось выступить на HighLoad++ 2022 с похожей темой: «СМЭВ. Сильно проще, чем кажется. Полезные советы, как стартовать интеграцию через СМЭВ3 и СМЭВ4». Организаторы знают своё дело. В зале была заинтересованная аудитория, которая задавала вопросы с неподдельным интересом. С некоторыми разговор у стенда продолжался ещё несколько часов. Так родилась идея — зафиксировать всё текстом в этой статье.

Читать далее
Всего голосов 34: ↑32 и ↓2+33
Комментарии39

Универсальный загрузчик XML на java. Или как загрузить файлы ГАР на 250 гб и остаться при памяти

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров5K

С проблемой загрузки больших XML столкнулся при переходе с КЛАДР и ФИАС на справочники ГАР - Государственный адресный реестр (Федеральная информационная адресная система).

Справочник ГАР содержит более подробную информацию чем предыдущие классификаторы. В том числе информацию по муниципальным делениям. В связи с чем справочник после распаковки занимет около 250 ГБ, что примерно в 3 раза больше чем тот же ФИАС.

Предыдущая загрузка работала на DOM-модели, т.е. весь XML-файл считывался в память. Соответственно при попытке загрузить ГАР таким же способом стали стабильно получать OutOfMemory. А значит настало время менять подход к загрузке)

Немного теории:

DOM (Document Object Model) - это стандартный интерфейс для работы с документами в формате XML (Extensible Markup Language). DOM-модель представляет XML-документ в виде дерева объектов, где каждый элемент и атрибут документа является узлом дерева.

SAX (Simple API for XML) является событийно-ориентированным API для чтения XML-документа. Он предоставляет возможность читать XML-документ последовательно и обрабатывать события, такие как начало и конец элемента, содержимое элемента и т.д.

StAX (Streaming API for XML) также является API для последовательного чтения и записи XML-документов. Он предоставляет потоковый доступ к XML-документу, позволяя читать его и записывать по частям. StAX предоставляет возможность читать и записывать XML-документы в виде потока событий, аналогично SAX, но также предоставляет возможность читать и записывать XML-документы в виде итерируемых наборов событий. StAX позволяет эффективно обрабатывать большие XML-документы и не требует реализации обработчиков событий.

Читать далее
Всего голосов 11: ↑5 и ↓6+3
Комментарии19

ЦУЦ — или как свести 15 тысяч товаров от разных поставщиков на коленке

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров2.4K

По мере роста бизнеса и расширения ассортимента товаров, компания столкнулась с проблемой остатков товаров и актуальными ценами. Если в начале моей работы, количество товара на сайте было в районе 3 тысяч, то на текущий момент позиций более 15 тысяч. Обновлять руками такое количество позиций нереально. С чего я начал работу по автоматизации цен и с какими трудностями столкнулся читайте в моей публикации.

Читать далее
Всего голосов 8: ↑8 и ↓0+8
Комментарии8

Проверка XML. Schematron

Уровень сложностиСложный
Время на прочтение9 мин
Количество просмотров6.6K

Так или иначе, все сервисы сталкиваются с задачами валидации. Часто они сводятся к простым и однотипным проверкам: заполнены ли все обязательные поля, верен ли формат телефонного номера, кредитной карты и пр. Но существуют проекты, в которых условия и правила проверок более разнообразные, да и те временами требуют серьёзного пересмотра. Внесение же изменений или создание дополнительных правил валидации требует непростых согласований и привлечения внимания нескольких команд разработчиков, обновления документации.

Недавно мне довелось поучаствовать в проекте, особую роль в котором занимают функции форматно-логического контроля входящих документов. Как следствие, у меня появились некоторые варианты решения подобных задач. Одним из них я и хочу поделиться.
Читать дальше →
Всего голосов 28: ↑27 и ↓1+38
Комментарии1

XML дерево на С. Пишем подготовительный код для библиотеки targetXML

Уровень сложностиСложный
Время на прочтение18 мин
Количество просмотров1.9K

targetXML - маленький экскурс в структуру дерева XML на примере работоспособного кода «pure C».

Здравствуй уважаемый читатель. Я пишу код на С и С++. В этой короткой статье подробно описывается мой подготовительный этап создания маленькой библиотечки на языке С, работающей с файлами xml. Рассказ об опыте такой разработки может пригодится как новичкам, любителям, так и профессионалам. К тому же в статье есть ссылка на исходный код, и вы всегда можете, при желании, заняться оптимизацией.

Читать далее
Всего голосов 5: ↑3 и ↓2+3
Комментарии3
1
23 ...

Вклад авторов