Skip to content

Releases: nashwaan/xml-js

Faster internal processing for js2xml and json2xml

24 May 04:43
Compare
Choose a tag to compare

Optimization done in js2xml routine that improves its performance for converting js object or json text to xml text.
Thanks for the efforts #63 by @AirCrisp

Additional Processing via Custom Functions

17 Dec 22:38
Compare
Choose a tag to compare

This release adds a major feature that allows to pass in custom functions for additional processing.

Example to make all parsed element names in upper case:

var js = convert.xml2js(xml, {compact: false, elementNameFn: function(name) {
    return name.toUpperCase();
}});

Support attributes indentation and few minor improvements

03 Oct 12:52
Compare
Choose a tag to compare

This release supports a new option indentAttributes to indent attributes in the xml. See below example from this thread:

<parent
  bar="1"
  baz="hello"
>
  <child
    attr1="a"
    attr2="b"
  />
</parent>

Also, support for converting js object of {a: 'hi'} rather than {a: {_text: 'hi'}} to <a>hi</a>.
I previously didn't want to support this for the reasons outlined here.
I am allowing this behavior in this library as it can be safe to handle this scenario when transforming js2xml only.
xml2js conversion from <a>hi</a> to {a: 'hi'} rather than {a: {_text: 'hi'}} is still not supported as this could be dangerous for the reasons explained here.

Better handling of basic xml entity codes

19 Aug 19:52
Compare
Choose a tag to compare

This release addresses some issues on escaping entity codes (e.g &amp;) in xml document.

The new implementation can cause a slight breaking change:

  • Converting from xml to js will decode the 5 entity codes &amp; &lt; &gt; &quot; &#39; into & < > " '. For example, &amp; WILL be changed to & character (instead of keeping it &amp;). Also, {sanitize: true} option is deprecated.
  • Converting from js to xml will cause 3 characters & < > (instead of 5 characters) if found in node text to be transformed into &amp; &lt; &gt;. And will cause 1 character " (instead of 5 characters) if found in node attribute to be transformed into &quot;.

For more discussion, see this issue.

Support parsing of Processing Instructions

25 May 03:27
Compare
Choose a tag to compare

Parsing of processing instructions such as <?go there?> and <?go to="there"?> are now supported. Note that for the second case, the parser by default will not generate attributes unless flag {instructionHasAttributes: true} is set. See discussion for more details.

AlwaysArray and Multiple Comments & CData in Compact Mode

27 Apr 08:24
Compare
Choose a tag to compare

Setting {compact: true, alwaysArray: true} when converting from xml to js/json will always put sub-element (even if it is only one) into an array of objects. This can simplify the client code a little so that it can always expect the content of an element is an array rather than checking everytime whether it is an array or object.

Also, multiple comments and multiple CDatas are now supported in compact mode.

Support for DOCTYPE and no indentation for CData

27 Apr 03:11
Compare
Choose a tag to compare
  • Parsing of DOCTYPE is now supported but in a simple way: its content will be a string and will not be parsed further (see discussion).
  • XML output of CData will not be proceeded by indentation by default (see discussion). However, to get old behavior where CData is indented in the output, use {indentCdata: true}.

First Stable Release

27 Apr 08:16
Compare
Choose a tag to compare

First major and stable release.