Программа редактирования xml. Создание и редактирование XML-файла в Excel

Данные, хранящиеся в XML файле, можно редактировать прямо в клиентском браузере.

Открытие, редактирование и сохранение XML

В этой главе будет показано как открывать, редактировать и сохранять XML файл, хранящийся на сервере.

Для этого мы будем использовать XSL, чтобы преобразовать XML документ в HTML форму. Значения XML элементов будут записываться в поля ввода в HTML форме. HTML форму можно будет редактировать. После редактирования данные можно будет отправить на сервер, и XML файл будет обновлен (мы покажем соответствующий код на PHP и ASP).

XML и XSL файлы

Для примера возьмем следующий XML документ ("tool.xml"):

HAMMER HG2606 32456240 $30.00

И соответствующую таблицу стилей XSL ("tool.xsl"):

Tool Information (edit):


Код в приведенном выше XSL файле в цикле проходит по элементам XML файла и создает поле ввода для каждого XML элемента-"поля".

Значение атрибута "id" XML элемента-"поля" добавляется одновременно в атрибуты "id" и "name" каждого HTML поля ввода. Значение каждого XML элемента "value" добавляется в атрибут "value" каждого HTML поля ввода. В результате мы получаем редактируемую HTML форму, содержащую значения из XML файла.

Наконец, мы определяем вторую таблицу стилей XSL: "tool_updated.xsl". Этот XSL файл будет использоваться для отображения обновленных XML данных. Данная таблица стилей формирует не HTML форму, а статическую HTML таблицу:

Updated Tool Information:

PHP файл

В файле "tool.xsl" указываем в атрибуте action формы файл "edittool.php".

Файл "edittool.php" содержит две функции: функция loadFile() загружает и преобразовывает XML файл для дальнейшего отображения, а функция updateFile() применяет сделанные изменения в XML файле:

load($xml); $xslDoc = new DOMDocument(); $xslDoc->load($xsl); $proc = new XSLTProcessor(); $proc->importStyleSheet($xslDoc); echo $proc->transformToXML($xmlDoc); } function updateFile($xml) { $xmlLoad = simplexml_load_file($xml); $postKeys = array_keys($_POST); foreach($xmlLoad->children() as $x) { foreach($_POST as $key=>$value) { if($key == $x->attributes()) { $x->value = $value; } } } $xmlLoad->asXML($xml); loadFile($xml,"tool_updated.xsl"); } if($_POST["btn_sub"] == "") { loadFile("tool.xml", "tool.xsl"); } else { updateFile("tool.xml"); } ?>

Примечание : Все преобразования и изменения XML файла делаются на сервере. Это кросс-браузерное решение. Пользователь получит только HTML страницу, что будет работать в любом браузере.

ASP файл

В файле "tool.xsl" указываем в атрибуте action формы файл "edittool.asp".

Файл "edittool.asp" содержит две функции: функция loadFile() загружает и преобразовывает XML файл для дальнейшего отображения, а функция updateFile() применяет сделанные изменения в XML файле:

<% function loadFile(xmlfile,xslfile) Dim xmlDoc,xslDoc "Загружаем XML и XSL файлы set xmlDoc = Server.CreateObject("Microsoft.XMLDOM") xmlDoc.async = false xmlDoc.load(xmlfile) set xslDoc = Server.CreateObject("Microsoft.XMLDOM") xslDoc.async = false xslDoc.load(xslfile) "Преобразовываем файл Response.Write(xmlDoc.transformNode(xslDoc)) end function function updateFile(xmlfile) Dim xmlDoc,rootEl,f Dim i "Загружаем XML файл set xmlDoc = Server.CreateObject("Microsoft.XMLDOM") xmlDoc.async = false xmlDoc.load(xmlfile) "Устанавливаем переменную rootEl равную корневому элементу Set rootEl = xmlDoc.documentElement "Цикл по набору формы for i = 1 To Request.Form.Count "Убираем элементы кнопок в форме if instr(1,Request.Form.Key(i),"btn_")=0 then "Метод selectSingleNode запрашивает XML файл на наличие одиночного узла, "соответствующего запросу. Данный запрос ищет элемент value, который "является потомком элемента field, у которого атрибут id соответствует "текущему ключу в Form Collection. Когда соответствие будет найдено, "установить свойство text равным значению текущего поля в Form Collection. set f = rootEl.selectSingleNode("field[@id="" & _ Request.Form.Key(i) & ""]/value") f.Text = Request.Form(i) end if next "Сохранить модифицированный XML файл xmlDoc.save xmlfile "Освобождаем все ссылки на объекты set xmlDoc=nothing set rootEl=nothing set f=nothing "Загружаем модифицированный XML файл с таблицей стилей, "которая позволит пользователю увидеть отредактированную информацию loadFile xmlfile,server.MapPath("tool_updated.xsl") end function "Если форма была отправлена, обновить XML файл и отобразить результат "Если нет, преобразовать XML файл для редактирования if Request.Form("btn_sub")="" then loadFile server.MapPath("tool.xml"),server.MapPath("tool.xsl") else updateFile server.MapPath("tool.xml") end if %>


Давно работаю с XML-файлами, но только сейчас задался вопросом: Как штатными средствами создавать и редактировать XML-файлы в MS Excel? Excel удобный и интуитивно понятный инструмент для создания, редактирования и обработки различных данных. Excel изучают в школе и, наверное, не найдется человека, умеющего работать на ПК и не владеющего основами работы в Excel. Поэтому на мой взгляд это наиболее подходящий инструмент, который можно рекомендовать простым пользователям для создания и редактирования файлов данных для различных приложений, в том числе Веб-приложений. У меня дома установлен MS Excel 2013 и на его примере я опишу те нехитрые процедуры, которые необходимо выполнить при создании XML-файла данных в Excel. Думаю, что и в более ранних версиях Excel это будет тоже работать. Чтобы создать XML-файл данных проделаем несколько несложных шагов. Рассмотрим их на примере создания файла данных событий .

1. Для начала необходимо в Excel создать и заполнить таблицу данных в соответствии со структурой данных. Используйте, пожалуйста, для этого пункт меню Вставка/Таблица .

2. Создадим схему файла XML. Для этого в текстовом редакторе введем следующие строки и и сохраним их в файле.

XHTML

0 0 0 0 Светлое Христово Воскресение. Пасха 0 0 -7 0 -7 Вход Господень в Иерусалим 1

0

0

0

0

Светлое Христово Воскресение. Пасха

0

0

-7

0

-7

Вход Господень в Иерусалим

1

3. Теперь откройте вкладку Разработчик , нажмите кнопку Источник и укажите файл-источник XML. При необходимости включите пункт меню Разработчик в Настройках Excel.

4. Осталось сопоставить элементы схемы и колонки таблицы, перетащив элементы на соответствующие заголовки колонок.

5. И последний шаг: экспортировать данные таблицы в XML-файл с помощью контекстного меню. Встаньте на любую ячейку таблицы, нажмите правую кнопку мыши, выберите XML/Экспорт… и сохраните XML-файл под нужным именем.

Сохраните Excel-файл для последующего редактирования и дополнения. В последующем пункты 1.-4. проделывать будет не нужно!

P.S. Зачем же я написал эту банальную заметку? Во-первых, чтобы самому не забыть, а во-вторых, думаю, что эта информация пригодится пользователям , начиная со следующей версии 0.6 ;-)

Файлы с расширением XML содержат в себе базовые текстовые данные и поэтому не требуют платного ПО для их просмотра и редактирования. XML-документ, в котором храниться набор параметров приложения, база данных или любая другая важная информация, может без проблем открываться при помощи простейшего системного блокнота.

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

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

Способ 1: XmlGrid

Этот простейший на первый взгляд онлайн-редактор на самом деле является достаточно мощным инструментом для работы с XML-документами. В нем вы не только можете создавать и изменять файлы, написанные на расширяемом языке разметки, но и проверять их валидность, проектировать карты сайтов и конвертировать документы из/в XML.

Начать работу с XML-файлом в XmlGrid можно либо загрузив его на сайт, либо же поместив туда непосредственное содержимое документа.

Начнем со второго варианта. В этом случае мы просто копируем весь текст из файла XML и вставляем его в поле на главной странице сервиса. А затем жмем на кнопку «Submit» .


Другой же способ — загрузить XML-документ с компьютера.


Есть еще и третий способ импорта файла XML в XmlGrid — загрузка по ссылке.


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


Отредактировав документ, вы можете сохранить готовый файл в памяти компьютера. Для этого нужно воспользоваться небольшой кнопкой «Save» в верхней части страницы.

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

Способ 2: TutorialsPoint

Если предыдущий сервис вам показался довольно специфичным, можно воспользоваться более классическим XML-редактором. Такой инструмент предлагается на одном из крупнейших онлайн-ресурсов в сфере IT-образования — TutorialsPoint.

Перейти к XML-редактору мы можем через дополнительное меню на сайте.


Интерфейс этого онлайн-решения максимально понятен и содержит весь необходимый функционал для полноценной работы с документом XML.

Редактор представляет собой пространство, разделенное на две части. Слева находится область для написания кода, справа — его древовидное представление.


Чтобы загрузить XML-файл в онлайн-сервис, придется воспользоваться меню в левой части страницы, а именно вкладкой «Upload File» .

Для импорта документа с компьютера используйте кнопку «Upload from Computer» . Ну а чтобы загрузить XML-файл напрямую со стороннего ресурса, введите ссылку в поле с подписью «Enter URL to Upload» ниже и нажмите «GO» .

По окончании работы с документом его можно сразу сохранить в памяти компьютера. Для этого воспользуйтесь кнопкой «Download» над древовидным представлением XML-кода.

В итоге файл с названием «file.xml» будет сразу же загружен на ваш ПК.

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

Способ 3: Code Beautify

Для работы с XML-документами онлайн отлично подойдет и решение от сервиса Code Beautify. Веб-сайт позволяет просматривать и редактировать целый ряд файловых форматов, включая, конечно же, написанные на расширяемом языке разметки.

Чтобы открыть непосредственно XML-редактор, на главной странице сервиса под заголовком «Popular Functionality» или «Web Viewer» найдите кнопку «XML Viewer» и нажмите на нее.

Интерфейс онлайн-редактора, как и функциональная составляющая, очень схож с уже рассмотренным выше инструментом. Как и в решении TutorialsPoint, рабочее пространство разделено на две части — область с XML-кодом («XML Input» ) слева и его древовидное представление («Result» ) справа.

Загрузить файл для редактирования можно при помощи кнопок «Load Url» и «Browse» . Первая позволяет импортировать XML-документ по ссылке, а вторая — из памяти вашего компьютера.


После окончания работы с файлом, его обновленную версию можно загрузить на компьютер в виде CSV-документа или с исходным расширением XML. Для этого используются кнопки «Export to CSV» и «Download» соответственно.

В целом редактировать XML-файлы с помощью решения от Code Beautify очень удобно и наглядно: в наличии подсветка синтаксиса, представление кода в виде дерева элементов, масштабированный интерфейс и ряд дополнительных возможностей. К последним относится функция быстрого форматирования XML-документа, инструмент для его сжатия за счет удаления пробелов и переносов, а также моментальная конвертация файла в JSON.

Записав вчера видео о выгрузке отчета РСВ-1, я вспомнил еще об одной детали, о которой стоит рассказать в связи с этой темой.

Не секрет, что номер файла, который формируется при выгрузке РСВ-1 из Бухгалтерии или УСН 7.7 при каждой новой выгрузке увеличивается на "1":

И если номера пачек персонифицированного отчета, например, "4" и "5", то хотелось бы, чтобы номер файла РСВ-1 был бы "6". Как это сделать? Дело в том, что мало просто переименовать файл исправив номер в имени файла. Ведь номер файла прописан и в самом файле. Это можно легко проверить: если кликнуть по файлу с расширением xml он откроется для просмотра программой Explorer (или какой-то другой, в зависимости от настроек вашей операционной системы):

Итак, вначале исправляем имя файла. В нашем случае заменяем "21" на "06". А для исправления содержимого - воспользуемся программой "Блокнот", который есть на любом компьютере. Дело в том, что файл "xml" это простой текстовый файл, который легко исправить блокнотом. Кликаем правой клавишей мышки по файлу и в открывшемся контекстном меню выбираем "Открыть с помощью" и из появившегося списка программ выбираем "блокнот".

Если в перечне программ блокнота нет, то выбираем пункт "Выбрать программу":

И в появившемся окне "Выбор программы" выбираем блокнот и нажимаем "ОК".

Теперь в блокноте меняем номер в названии файла (например, "21" на "06") и закрываем блокнот с сохранение. Вот и все. Можно сдавать в ПФР 🙂

В заключении хочу отметить, что описанный способ применим для небольших изменений в небольших файлах. Если вам приходится часто редактировать xml файлы - найдите какой-нибудь специальный редактор с подсветкой синтаксиса и поддержкой юникода. Это сильно уменьшит вероятность возможных ошибок.

Многофункциональный XML (и не только) редактор. Умеет подсвечивать команды великого множества языков программирования, проверять на ошибки, и много чего ещё.

Сегодня мы рассмотрим один из мультифункциональных инструментов для веб-мастеров - чешcкую программу PSPad. По сути, это тот же Блокнот , но его функциональность расширена до предела.

В программу, которая в установленном виде занимает всего около 10 мегабайт, умудрились впихнуть столько, что ни в сказке сказать, ни пером описать (ни клавиатурой отстучать:)). PSPad имеет следующий набор инструментов:

Возможности PSPad

HEX-редактор (англ. hex-editor) - программа для редактирования кода в 16-ричном виде.
  • поддержка множества языков программирования: HTML, XML, PHP , Pascal, JScript , VBScript, MySQL, MS-DOS, Perl, Basic и т. д.;
  • подсветка синтаксиса и проверка (а также оптимизация) кода;
  • встроенный предпросмотр готовой web-странички;
  • HEX-редактор;
  • проверка правописания;
  • встроенный FTP-клиент ;
  • возможность вызова из PSPad среды разработки для каждого из языков;
  • гибкая система настроек.

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

Интерфейс PSPad

Не стоит заранее пугаться - нет здесь ничего сложного.

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

Попробуем ввести простейшую программу на Бейсике для вычисления функции "y=3*log (A)" и посмотрим, как будет вести себя PSPad.

По умолчанию программа создает текстовый документ с расширением .txt .

Для того чтобы выбрать нужное нам расширение зайдем в меню "Файл" и выберем пункт "Новый" (или нажмем CTRL+N).

Появится табличка, которая содержит список имеющихся в программе синтаксисов языков. Выбираем нужный (в данном случае Visual Basic) и нажимаем "Ok".

Теперь расширение файла .bas - стандартное для программ написанных на Бейсике. Вводим код:

Как видим, PSPad автоматически отображает разными цветами цифры, печатаемый текст и зарезервированные слова языка программирования. Таким образом, мы всегда можем видеть, правильно ли вводим ту или иную информацию. При этом цвет подсветки можно изменять по желанию, что делает взаимодействие с PSPad еще более удобным.

Все настройки можно произвести при помощи возможности редактирования шаблона того или иного языка.

Чтобы это сделать, зайдите в меню "Настройка" и выберите пункт "Редактировать шаблон", после чего в выпадающем списке выберите нужный язык.

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

Поистине колоссальную поддержку PSPad предоставляет в редактировании HTML страничек.

Помимо подсветки синтаксиса HTML (причем в нескольких вариациях), программа помогает:

  • проверить правописание;
  • ошибки в коде;
  • оптимизировать код;
  • синхронизировать и редактировать страницу непосредственно по FTP;
  • просматривать внешний вид страницы при помощи встроенного просмотрщика или подключаемого сервера (Apache) ;
  • и многое-многое другое.

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

Сжатие HTML

Мы всегда "воюем" за уменьшение размера HTML-файла, чтобы можно было больше вместить в него информации при меньших его габаритах. PSPad предлагает интересную возможность сжатия HTML-кода.

Давайте сравним:

На рисунке Вы видите несжатый код, который размещается на 53-х строчках.

Теперь нажмем на кнопку "Сжать HTML код без изменения работоспособности" и получим следующий результат:

Итоговая длина кода - 13 строчек!!! То есть размер документа уменьшился более чем в 3 раза!!! При этом работоспособность не пострадала. В этом можно убедиться, нажав на кнопку F10 - вызывается встроенный просмотрщик страницы.

Проверка HTML-кода на валидность

Весьма полезна также утилита для проверки HTML кода и таблица непечатаемых символов.

Для того чтобы проверить документ на ошибки зайдите в меню "HTML" и выберите пункт "Проверить HTML код" (горячие клавиши - CTRL+F10).

Внизу Вы увидите в открывшемся окошке "Log" все ошибки и предупреждения касательно Вашего кода.

В самом низу окна программы есть строка статуса, в которой отображается всяческая вспомогательная информация (текущее положение курсора, выключатель текста, варианты обозначения текущего знака (HEX, DEX, HTML), текущий язык и кодировка текста).

Чтобы получить доступ к таблице непечатаемых символов следует один раз кликнуть по строчке, где указаны варианты отображения текущего символа.

Выводы

Чтобы описать все функции PSPad, не хватит, наверное, и целой книги, так как их не просто много, а очень много.

Каждый найдет в программе что-то свое, однако я бы советовал обратить на нее внимание, прежде всего веб-программистам и верстальщикам, потому что PSPad просто так и просится на место главного инструмента для работы с HTML:).

Послесловие

Все познается в сравнении… Как известно, нет ничего совершенного, однако ничто, тем не менее, не мешает к совершенству стремится. И так во всех сферах нашей жизни.

Программирование - не исключение. Наоборот, все программисты стремятся к совершенствованию и оптимизации своих творений.

И раньше единственным помощником для них был стандартный "Блокнот" Windows. В нем не было никаких изысков, типа подсветки синтаксиса языков программирования или HTML тэгов, но это не мешало работе.

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

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

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

Поэтому в данной статье мы и рассмотрели один из таких инструментов, замечательную чешскую программу PSPad.

P.S. Разрешается свободно копировать и цитировать данную статью при условии указания открытой активной ссылки на источник и сохранения авторства Руслана Тертышного.

P.P.S. Если Вы - начинающий верстальщик, то Вам лучше всего может подойти визуальный HTML-редактор Nvu. C его помощью Вы лучше поймете язык гипертекстовой разметки и сможете видеть и контролировать все свои действия в реальном времени.