Добавление пространства имен в уже созданный XML-документ
=========================================================

Я создаю объект документа W3C, используя строковое значение. Создав объект Document, я хочу добавить пространство имен к корневому элементу этого документа. Вот мой текущий код:

Что я использую в качестве ввода:

Как должен выглядеть вывод:

Мне нужно добавить значение префикса и пространство имен также во входную строку XML. Если я попробую приведенный выше код, я получу это исключение:

Ценю твою помощь!

 нам придется заменить его элементом, который имеет правильное пространство имен и атрибут, а затем скопировать в него все исходные дочерние элементы. Принудительное объявление пространства имен не требуется, потому что, предоставив элементу правильное пространство имен (URI) и установив префикс, объявление будет автоматическим.

Заменить`setAttribute` а также`setPrefix` с этим (строка 2,3)

В исходном коде автор попытался объявить пространство имен элемента следующим образом:

Первый параметр представляет собой пространство имен атрибута, и, поскольку он является атрибутом пространства имен, он должен иметь[http://www.w3.org/2000/xmlns/](https://www.w3.org/2000/xmlns/) URI. Объявленное пространство имен должно входить в 3-й параметр



 но, вероятно, не следует использовать в случае критической производительности.

Add name space to document root element as attribute. 
Transform the document to XML string. The purpose of this step is to make the child element in the XML string inherit parent element namespace.
Now the xml string have name space. 
You can use the XML string to build a document again or used for JAXB unmarshal, etc.



[Вот](https://stackoverflow.com/a/28497163/32453)и также из приведенного выше комментария я смог заставить его работать (преобразовав произвольный узел DOM и добавив префикс к нему и всем его дочерним элементам), таким образом:

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