javascript создание xml файла

Мне интересно, возможно ли создать XML файл с некоторыми данными в Javascript? У меня есть данные, хранящиеся в переменных.

Я немного искал Google, и похоже, что он много говорил. Я думал, что могу использовать XMLWriter , например:

как указано в этом уроке: Учебник EHow

Однако, когда я выполняю этот код, я получаю следующую ошибку:

Любые идеи о том, как я могу начать с этого?

Отказ от ответственности: Следующий ответ предполагает, что вы используете среду JavaScript в веб-браузере.

JavaScript обрабатывает XML с помощью объектов XML DOM. Вы можете получить такой объект тремя способами:

1. Создание нового объекта DOM XML

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

2. Получение XML файла с помощью XMLHttpRequest

3. Разбор строки, содержащей сериализованный XML

Когда вы получили объект XML DOM, вы можете использовать методы для его управления, например

Примечание: Важно, чтобы вы не использовали методы, предоставляемые пространством имен документов, i. е.

Это создаст узлы HTML вместо узлов XML и приведет к node с именами нижних регистров. Имена тегов XML чувствительны к регистру, в отличие от имен тегов HTML.

Вы можете сериализовать объекты XML DOM следующим образом:

У меня есть следующий код:

Я создал dbbackup.xml в том же месте, и файл XML выглядит так:

Но после запуска моего script файл xml не обновляется.

4 ответа

1 [2012-08-14 09:36:00]

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

Подумайте о браузере как песочнице, в которую могут играть ваши дети (html, xml и т.д.). Пока Джонни (xml) играет в песочнице, все хорошо. Но если бы Джонни разрешили играть за пределами этой песочницы, просто подумайте о хаосе, который может быть сделан на вашей машине веб-сайтами.

Нет НИКАКИХ способов, JavaScript может навсегда влиять на файл на вашем локальном компьютере сам по себе. Он может воспроизводиться только в песочнице (локально, он может совершать вызовы на Java или другой API, чтобы повлиять на изменение, но на то, что все другое дело).

JavaScript — только клиентская сторона. Если вы ожидаете, что он повлияет на сервер, он может сделать это только через обратные вызовы на сервер. На сервере вам понадобится какое-то программирование (asp.net, java, php, html, others), чтобы получать и отвечать на этот вызов и что-то делать с ним.

JavaScript сам по себе очень мощный. но только inisde песочница (браузер). Чтобы это повлияло на что-либо еще за пределами этого браузера, оно должно зависеть от других уже существующих программ и готовых для получения этих запросов.

И все это во имя безопасности, в основном.

1 Huang Zhu [2013-07-12 16:28:00]

Вы можете собирать данные с веб-страницы на стороне клиента и отправлять их на сервер (ajax), который затем генерирует XML файл и отправляет ссылку на файл (ajax). Используйте javascript для создания ссылки для загрузки, используя ссылку, возвращаемую сервером.

Так я делаю, чтобы решить проблему в одном из моих проектов.

1 Polyov [2012-08-14 09:01:00]

Javascript не может изменять файлы на диске, он работает только для клиента в клиентском веб-браузере.

Чтобы на самом деле писать в файлы и на сервере, вы должны использовать серверные языки и технологии, такие как PHP или ASP.

1 Mike [2012-08-14 09:11:00]

Я сделал это — создав XML на стороне клиента, а затем используя повседневную практику Майк

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

Скажем, мне нужно сгенерировать этот (игрушечный) XML-документ с помощью JavaScript:

Чтобы начать, мне нужно создать какой-то объект документа XML с корнем «report». Я предполагаю, что один из них должен быть близок, но никто из них не работает правильно, и/или я не могу понять, как правильно использовать объект:

Теперь я хочу создать и добавить элементы. Как мне это сделать? Я представляю себе что-то вроде этого:

Без адресации следует ли использовать jQuery для построения XML, вот несколько идей о том, как вы можете это сделать:

Второй подход кажется хорошим способом. Он был разработан для работы с документами XML. После создания объекта документа используйте стандартные методы обработки XML DOM для создания всего документа.

Это может показаться немного подробным, но это правильный способ создания XML-документа. jQuery фактически не создает какой-либо XML-документ, а просто использует свойство innerHTML для анализа и восстановления DOM с учетом строки HTML. Проблема с этим подходом заключается в том, что когда имена тегов в вашем XML сталкиваются с именами тегов в HTML, например

или , результаты могут быть непредсказуемыми. (EDIT: с 1.5 там jQuery.parseXML(), который фактически создает XML-документ и, таким образом, избегает этих проблем — только для синтаксического анализа.)

Чтобы сократить объемность, напишите небольшую вспомогательную библиотеку или, возможно, плагин jQuery для создания документа.

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

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