Создание нового пустого документа с JavaScript -- javascript поле с участием xml поле с участием dom пол Связанный проблема

creating a new, empty document with javascript


4
vote

проблема

русский

Я работаю с некоторыми очень неразрушными XML (все теги - такие вещи, как «TX», «H», «VC»).

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

Я пробовал это:

 <код> doc = (new DOMParser()).parseFromString("", 'text/xml');   

Но когда я делаю это, я проводил документ, который имеет узел ребенка, а не быть пустым. Кроме того, тарнамя детского ребенка - «ParserError»

Так, любые идеи, как я могу создать пустой документ?

Английский оригинал

I'm working with some very unintuitive xml (all the tags are things like "TX", "H", "VC").

I'd like to make a copy of this data, but with all of the tags renamed to what they actually mean. Can I create a new, empty document to put my new, nicely named tags in to?

I've tried this:

doc = (new DOMParser()).parseFromString("", 'text/xml'); 

but when I do so, I wind up with a document that has a child node, rather than being empty. Furthermore, that child's tagname is "parsererror"

So, any ideas how I can create an empty document?

</div
        

Список ответов

4
 
vote
<Р> я мастерил тот же вопрос, и я решил, что нравится ниже:
 <код> xmlDoc = document.implementation.createDocument("", "", null); root = xmlDoc.createElement("description"); xmlDoc.appendChild(root); alert((new XMLSerializer()).serializeToString(xmlDoc));   
 

I hade the same issue and I solved it like below:

xmlDoc = document.implementation.createDocument("", "", null); root = xmlDoc.createElement("description"); xmlDoc.appendChild(root); alert((new XMLSerializer()).serializeToString(xmlDoc)); 
</div
 
 
3
 
vote
<Р> Вы можете создать пустой документ в совместимом браузере W3C DOM (IE9 + и отдых) со следующим кодом.
 <код> var doc = (new DOMParser()).parseFromString('<dummy/>', 'text/xml'); doc.removeChild(doc.documentElement);   
 

You can create an empty document in a W3C DOM compliant browser (IE9+ and the rest) with the following code.

var doc = (new DOMParser()).parseFromString('<dummy/>', 'text/xml'); doc.removeChild(doc.documentElement); 
</div
 
 
1
 
vote
<Р> Я не думаю, что вы можете создать документ без корневого узла. Вы можете создать узел поддельный:
 <код> doc = (new DOMParser()).parseFromString("<dummy/>", 'text/xml');   
<Р> Тем не менее, лучшим решением может быть создание константы для имен узлов:
 <код> // Use different variable names, like RealTxName, if desired var REAL_TX_NAME = "TX"; var REAL_H_NAME = "H";  ... doc.find (REAL_TX_NAME); ...   
 

I don't think you can create a document without the root node. You could create a fake node:

doc = (new DOMParser()).parseFromString("<dummy/>", 'text/xml'); 

However, a better solution might be to create constants for the node names:

// Use different variable names, like RealTxName, if desired var REAL_TX_NAME = "TX"; var REAL_H_NAME = "H";  ... doc.find (REAL_TX_NAME); ... 
</div
 
 
 
 
1
 
vote
<Р> спецификация WHATWG в о <код> createDocument Метод позволяет обеспечить <код> null для каждого из 3-х аргументов <код> createDocument , чтобы иметь «пустой» XML документ, созданный и вернулся - один без корневого узла и с < код> application/xml в качестве типа контента. <Р> Когда <код> document объект доступен (совместимый агент веб-пользователь), реализация с <код> createDocument метод может быть упомянут с <код> var doc = (new DOMParser()).parseFromString('<dummy/>', 'text/xml'); doc.removeChild(doc.documentElement); 0
 <код> var doc = (new DOMParser()).parseFromString('<dummy/>', 'text/xml'); doc.removeChild(doc.documentElement); 1  
<Р> Вы можете затем тривиальным прикрепить корневой узел вашего выбора к нему, просто добавляя его, как вы могли бы, следующим образом (<код> var doc = (new DOMParser()).parseFromString('<dummy/>', 'text/xml'); doc.removeChild(doc.documentElement); 2 будет ссылаться на документ, созданный и возвращенного вызова выше):
 <код> var doc = (new DOMParser()).parseFromString('<dummy/>', 'text/xml'); doc.removeChild(doc.documentElement); 3  
 

The WHATWG's specification of the createDocument method allows one to provide null for each of the 3 arguments to createDocument, to have an "empty" XML document created and returned -- one without any root node and with the application/xml as its content type.

When the document object is available (a compliant Web user agent), the implementation with the createDocument method can be referred to with document.implementation:

document.implementation.createDocument(null, null, null); 

You may then trivially attach a root node of your choosing to it by simply appending it as you otherwise would, as follows (empty_doc would refer to the document created and returned by the call above):

empty_doc.appendChild(empty_doc.createElement("foobar")); 
</div
 
 
0
 
vote
 <код> var doc = (new DOMParser()).parseFromString('<dummy/>', 'text/xml'); doc.removeChild(doc.documentElement); 4  
 
var xmldom = require('xmldom'); var tree = (new xmldom.DOMImplementation()).createDocument(); 
</div
 
 

Связанный проблема

0  Попытка вернуть массив объектов для просмотра, получить «10 $ digest () итераций  ( Trying to return array of objects to view get 10 digest iterations reached ) 
Я пытаюсь создать токенизатор, где пользователь вводится в форматную строку, а пользовательский интерфейс дает им предварительный просмотр анализатора. Когда ...

3  Angularjs: Как активировать первый ненулевой элемент в Ngrepeat?  ( Angularjs how to activate first non zero item in ngrepeat ) 
для объекта, такого как <код> notification: { "text":0, "image":2, "video":0 } У меня есть <код> ng-repeat ввиду <код> <div ng-repeat="items...

11  Rx JS понимает метод подъема  ( Rx js understanding the lift method ) 
Я хочу создать новый оператор, и я нахожу в Документация То, что один из способов сделать что-то подобное: <код> class MyObservable extends Observable { ...

0  Ошибка прокладывания слайдера jQuery: ... не удалось конвертировать аргумент JavaScript ARG 0 [NSIDOMHTMLanChorElement.appendChild]  ( Jquery slider throwing error could not convert javascript argument arg 0 ns ) 
Наш сайт Dev Dev имеет ползунок отлично работает здесь: http://allblacks.01dev.co.nz/index.cfm layout = dnahome Однако мы просто поставили сайт Live, и ...

12  Синтаксисная ошибка в видом на бритву при прохождении свойств модели в качестве параметров на функцию JavaScript  ( Syntax error in razor view when passing model properties as parameters to javasc ) 
Я получаю <код> Syntax error на каждой запятой (<код> , ) и на последнем кронштейне (<код> ) ) в следующем коде: <код> <script type="text/javascript"> ...

5  Экспорт SVG в PDF в автономном TideSDK WebApp  ( Exporting svg to pdf in a offline tidesdk webapp ) 
У меня есть приложение Offline HTML5 / CSS / JS, построенное с TIDESDK, в котором гистограмма нарисована с HighCharts в качестве SVG «Tag», используя данные, ...

21  Angularjs NG-модель внутри NG-Repeat имеет плохую производительность  ( Angularjs ng model inside ng repeat has poor performance ) 
У меня проблема с производительностью с угловой в следующем сценарии: <код> <div ng-repeat="a in array"> <input ng-model="something"> </div> Я писал к...

0  Имея проблемы с использованием объема в jQuery  ( Having issues using a scope in jquery ) 
Так что я пытаюсь передать значение переменной FreeMarker ($ {item.uid}) на клик ссылки, чтобы запустить модаль с тем же уникальным значением идентификатора. ...

3  Как реализовать автономный компонент в React Redux?  ( How to implement a self contained component in react redux ) 
Я создаю базу файлового менеджера Webui основы на React Redux (моя цель - это управлять React и Redux через этот проект) Как вы знаете, файловый менеджер ну...

0  Как проверить функцию в жасмине  ( How to test a function in jasmine ) 
Может кто-нибудь помочь мне, пожалуйста? Я пытаюсь проверить функцию, которая вызывает функции FireBase, но когда я вызываю основную функцию и начните управля...

1  Обработка ошибок METEOR для шаблона именования ошибок опечатки  ( Meteor error handling for template naming typo errors ) 
Недавно у меня была ошибка с именем, используемым в файле помощников. Поскольку используемое имя шаблона было недействительным, все мои глобальные помощники п...

30  Динамическое имя NG-контроллера  ( Dynamic ng controller name ) 
Я хочу динамически указать контроллер на основе конфигурации, которую мы загружаем. Что-то вроде этого: <код> <div ng-controller="{{config.controllerNameStr...

0  SVG D3 круговой контроль  ( Svg d3 circular control ) 
Я пытаюсь сделать контроль, в котором радиальные линии прилипают за пределами круга. Длина каждой линии, прилипающей зависит от значения данных. Короче говоря...

0  Запустить функцию JavaScript с использованием C #  ( Trigger javascript function using c sharp ) 
Я должен написать класс C #, который получает содержимое HTML-страницы (страница публичная) и запускает функцию JavaScript, которая загружает файл. Моя цель...

3  Рисование круга с помощью кинетических js  ( Drawing a circle using kinetic js ) 
Я пытаюсь построить очень базовую покраску, используя каркас kinetic JS. Все все идут хорошо, пока не попытался включить функцию формы, которая позволяет поль...

Связанный проблема

0  Попытка вернуть массив объектов для просмотра, получить «10 $ digest () итераций 
3  Angularjs: Как активировать первый ненулевой элемент в Ngrepeat? 
11  Rx JS понимает метод подъема 
0  Ошибка прокладывания слайдера jQuery: ... не удалось конвертировать аргумент JavaScript ARG 0 [NSIDOMHTMLanChorElement.appendChild] 
12  Синтаксисная ошибка в видом на бритву при прохождении свойств модели в качестве параметров на функцию JavaScript 
5  Экспорт SVG в PDF в автономном TideSDK WebApp 
21  Angularjs NG-модель внутри NG-Repeat имеет плохую производительность 
0  Имея проблемы с использованием объема в jQuery 
3  Как реализовать автономный компонент в React Redux? 
0  Как проверить функцию в жасмине 
1  Обработка ошибок METEOR для шаблона именования ошибок опечатки 
30  Динамическое имя NG-контроллера 
0  SVG D3 круговой контроль 
0  Запустить функцию JavaScript с использованием C # 
3  Рисование круга с помощью кинетических js