Создание, редактирование и сохранение XML в JS

Вопрос: Я пытаюсь создать что-то с тяжелыми зависимостями редактирования XML, и у меня есть несколько вопросов о том, как я буду заниматься некоторыми вещами. Что я знаю: Редактирование HTML Редактирование метода XML разделяет большинство методов с HTML (который является типом самого XML) Как загрузить XML-документ и выполнить его Мои вопросы: как сохранить XML-документ, который был

Вопрос:

Я пытаюсь создать что-то с тяжелыми зависимостями редактирования XML, и у меня есть несколько вопросов о том, как я буду заниматься некоторыми вещами.

Что я знаю:

  • Редактирование HTML

  • Редактирование метода XML разделяет большинство методов с HTML (который является типом самого XML)

  • Как загрузить XML-документ и выполнить его

Мои вопросы:

  • как сохранить XML-документ, который был отредактирован в javascript, или он делает это автоматически

  • как создать пустой XML файл с помощью javascript

Лучший ответ:

К сожалению, вы, возможно, не сможете делать то, что хотите. JavaScript/ECMAScript не может напрямую записываться в файл без прямого взаимодействия (по крайней мере, не с файлом в типичной файловой системе, такой как папка “Мои документы” или “Рабочий стол”).

Во-первых, вы можете сохранить XML/HTML DOM в строку вроде этого (будет работать только в более поздних версиях большинства браузеров и IE 9+):

if(typeof window.XMLSerializer == «undefined») { throw new Error(«No modern XML serializer found.»); } var s = new XMLSerializer(); var xmlString = s.serializeToString( xmlDomVar );

После этого у вас есть только 2 варианта сохранения данных (без использования какого-либо дополнительного плагина, и даже у них может быть несколько ограничений):

  1. Сохраните данные в изолированном файле, доступном только для приложения, используя localStorage, после того как разрешение на использование localStorage задано пользователем (сохранено в местоположении, определенном браузером, вы не можете определить “C:UserMyUserDesktop”myfile.xml “в качестве местоположения).

  2. Сохраните как данные Blob, затем попросите загрузить его. Этот метод не позволит вам определить, где вы хотите, чтобы пользователь сохранил его, он просто представляет типичный диалог “Сохранить файл как…”, чтобы пользователь мог указать, где сохранить данные.

    • Хорошие примеры здесь: возможно ли записывать данные в файл, используя только JavaScript?

Для создания “чистого” xml файла… вы не можете. Он должен содержать, по крайней мере, открывающие и закрывающие теги, в противном случае браузер вернет HTML DOM с базовым форматом в комплекте с тегами html, head и body. Еще раз, будет работать только в IE 9+ и большинстве других современных браузеров:

if (typeof window.DOMParser != «undefined») { parseXml = function(xmlStr) { return ( new window.DOMParser() ).parseFromString(xmlStr, «text/xml»); }; } else { throw new Error(«No modern XML parser found.»); } // This will create a new XML DOM containing whatever is in the string. var newXmlDom = parseXml( ‘<xml></xml>’ ); // This will create a basic HTML structure if you do not provide any valid XML. var newHtmlDom = parseXml();

Оцените статью
Добавить комментарий