Maintaining capitalized letters when serializing DOM/XML to a string

So I’ve created a custom DOM structure and I’m converting it to a string using:

var myDOMstring = new XMLSerializer().serializeToString(myDOM);

It outputs everything to a valid string, as expected, but the names become lowercase. Anyway I can prevent that from happening?

For example…

var myDOM = document.createElement("MyDOM");
var anElement = document.createElement("AnElement");
myDOM.appendChild(anElement);

var myDOMstring = new XMLSerializer().serializeToString(myDOM);

// Output:
// <mydom><anelement></anelement></mydom>

// What I want:
// <MyDOM><AnElement></AnElement></MyDOM>

Thanks!

The only way to save uppercase letters here is to use custom namespace:

var myDOM = document.createElementNS("http://yourdomain.com", "MyDOM");
var anElement = document.createElementNS("http://yourdomain.com","AnElement");
myDOM.appendChild(anElement);

var myDOMstring = new XMLSerializer().serializeToString(myDOM);

Outputs:

<MyDOM xmlns="http://yourdomain.com"><AnElement/></MyDOM>

It’s not so hard to remove xmlns attribute then

1 Like

Excellent. Thank you.

And if you leave the namespace URL blank you don’t get an error and it’s not added to the element.

var myDOM = document.createElementNS("", "MyDOM");
var anElement = document.createElementNS("", "AnElement");
myDOM.appendChild(anElement);

Outputs:

<MyDOM><AnElement></AnElement></MyDOM>

This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.