pixl-xml
Advanced tools
Comparing version 1.0.6 to 1.0.7
{ | ||
"name": "pixl-xml", | ||
"version": "1.0.6", | ||
"version": "1.0.7", | ||
"description": "A simple module for parsing and composing XML.", | ||
@@ -5,0 +5,0 @@ "author": "Joseph Huckaby <jhuckaby@gmail.com>", |
232
README.md
@@ -19,3 +19,3 @@ # Overview | ||
``` | ||
npm install pixl-xml | ||
npm install pixl-xml | ||
``` | ||
@@ -26,3 +26,3 @@ | ||
```javascript | ||
var XML = require('pixl-xml'); | ||
var XML = require('pixl-xml'); | ||
``` | ||
@@ -33,9 +33,9 @@ | ||
```javascript | ||
var xml_string = '<?xml version="1.0"?><Document>' + | ||
'<Simple>Hello</Simple>' + | ||
'<Node Key="Value">Complex</Node>' + | ||
'</Document>'; | ||
var doc = XML.parse( xml_string ); | ||
console.log( doc ); | ||
var xml_string = '<?xml version="1.0"?><Document>' + | ||
'<Simple>Hello</Simple>' + | ||
'<Node Key="Value">Complex</Node>' + | ||
'</Document>'; | ||
var doc = XML.parse( xml_string ); | ||
console.log( doc ); | ||
``` | ||
@@ -46,9 +46,9 @@ | ||
```javascript | ||
{ | ||
"Simple": "Hello", | ||
"Node": { | ||
"Key": "Value", | ||
"_Data": "Complex" | ||
} | ||
} | ||
{ | ||
"Simple": "Hello", | ||
"Node": { | ||
"Key": "Value", | ||
"_Data": "Complex" | ||
} | ||
} | ||
``` | ||
@@ -61,4 +61,4 @@ | ||
```javascript | ||
var config = XML.parse( 'conf/config.xml' ); | ||
console.log( config ); | ||
var config = XML.parse( 'conf/config.xml' ); | ||
console.log( config ); | ||
``` | ||
@@ -69,10 +69,10 @@ | ||
```javascript | ||
var doc = null; | ||
try { | ||
doc = XML.parse( 'my_xml_file.xml' ); | ||
} | ||
catch (err) { | ||
console.log("XML Parser Error: " + err); | ||
} | ||
console.log( doc ); | ||
var doc = null; | ||
try { | ||
doc = XML.parse( 'my_xml_file.xml' ); | ||
} | ||
catch (err) { | ||
console.log("XML Parser Error: " + err); | ||
} | ||
console.log( doc ); | ||
``` | ||
@@ -89,9 +89,9 @@ | ||
```javascript | ||
var xml_string = '<?xml version="1.0"?><Document>' + | ||
'<Simple>Hello</Simple>' + | ||
'<Node Key="Value">Complex</Node>' + | ||
'</Document>'; | ||
var doc = XML.parse( xml_string, { preserveAttributes: true } ); | ||
console.log( doc ); | ||
var xml_string = '<?xml version="1.0"?><Document>' + | ||
'<Simple>Hello</Simple>' + | ||
'<Node Key="Value">Complex</Node>' + | ||
'</Document>'; | ||
var doc = XML.parse( xml_string, { preserveAttributes: true } ); | ||
console.log( doc ); | ||
``` | ||
@@ -102,11 +102,11 @@ | ||
```javascript | ||
{ | ||
"Simple": "Hello", | ||
"Node": { | ||
"_Attribs": { | ||
"Key": "Value" | ||
}, | ||
"_Data": "Content" | ||
} | ||
} | ||
{ | ||
"Simple": "Hello", | ||
"Node": { | ||
"_Attribs": { | ||
"Key": "Value" | ||
}, | ||
"_Data": "Content" | ||
} | ||
} | ||
``` | ||
@@ -121,9 +121,9 @@ | ||
```javascript | ||
var xml_string = '<?xml version="1.0"?><Document>' + | ||
'<Simple>Hello</Simple>' + | ||
'<Node Key="Value">Complex</Node>' + | ||
'</Document>'; | ||
var doc = XML.parse( xml_string, { lowerCase: true } ); | ||
console.log( doc ); | ||
var xml_string = '<?xml version="1.0"?><Document>' + | ||
'<Simple>Hello</Simple>' + | ||
'<Node Key="Value">Complex</Node>' + | ||
'</Document>'; | ||
var doc = XML.parse( xml_string, { lowerCase: true } ); | ||
console.log( doc ); | ||
``` | ||
@@ -134,9 +134,9 @@ | ||
```javascript | ||
{ | ||
"simple": "Hello", | ||
"node": { | ||
"key": "Value", | ||
"_data": "Content" | ||
} | ||
} | ||
{ | ||
"simple": "Hello", | ||
"node": { | ||
"key": "Value", | ||
"_data": "Content" | ||
} | ||
} | ||
``` | ||
@@ -146,2 +146,30 @@ | ||
### preserveDocumentNode | ||
If you want the outermost root node (also called the document node) preserved when parsing, set the `preserveDocumentNode` property to true when parsing. Example: | ||
```js | ||
var xml_string = '<?xml version="1.0"?><Document>' + | ||
'<Simple>Hello</Simple>' + | ||
'<Node Key="Value">Complex</Node>' + | ||
'</Document>'; | ||
var doc = XML.parse( xml_string, { preserveDocumentNode: true } ); | ||
console.log( doc ); | ||
``` | ||
With the `preserveDocumentNode` flag set to true, this would produce the following object: | ||
```js | ||
{ | ||
"Document": { | ||
"Simple": "Hello", | ||
"Node": { | ||
"Key": "Value", | ||
"_Data": "Complex" | ||
} | ||
} | ||
} | ||
``` | ||
## Composing XML | ||
@@ -152,4 +180,4 @@ | ||
```javascript | ||
var xml_string = XML.stringify( doc, 'Document' ); | ||
console.log( xml_string ); | ||
var xml_string = XML.stringify( doc, 'Document' ); | ||
console.log( xml_string ); | ||
``` | ||
@@ -160,7 +188,7 @@ | ||
```xml | ||
<?xml version="1.0"?> | ||
<Document> | ||
<Node Key="Value">Content</Node> | ||
<Simple>Hello</Simple> | ||
</Document> | ||
<?xml version="1.0"?> | ||
<Document> | ||
<Node Key="Value">Content</Node> | ||
<Simple>Hello</Simple> | ||
</Document> | ||
``` | ||
@@ -170,2 +198,8 @@ | ||
If you are composing an XML document which has the document root node preserved (see [preserveDocumentNode](#preserveDocumentNode) above), simply omit the name parameter, and only pass in the object. Example: | ||
```js | ||
var xml_string = XML.stringify( doc ); | ||
``` | ||
## Utility Functions | ||
@@ -178,3 +212,3 @@ | ||
``` | ||
STRING encodeEntities( STRING ) | ||
STRING encodeEntities( STRING ) | ||
``` | ||
@@ -185,5 +219,5 @@ | ||
```javascript | ||
var text = '<Hello>&<There>'; | ||
console.log( XML.encodeEntities(text) ); | ||
// Would output: <Hello>&<There> | ||
var text = '<Hello>&<There>'; | ||
console.log( XML.encodeEntities(text) ); | ||
// Would output: <Hello>&<There> | ||
``` | ||
@@ -194,3 +228,3 @@ | ||
``` | ||
STRING encodeAttribEntities( STRING ) | ||
STRING encodeAttribEntities( STRING ) | ||
``` | ||
@@ -201,5 +235,5 @@ | ||
```javascript | ||
var text = '<Hello>"&"<There>'; | ||
console.log( XML.encodeAttribEntities(text) ); | ||
// Would output: <Hello>"&"<There> | ||
var text = '<Hello>"&"<There>'; | ||
console.log( XML.encodeAttribEntities(text) ); | ||
// Would output: <Hello>"&"<There> | ||
``` | ||
@@ -210,3 +244,3 @@ | ||
``` | ||
STRING decodeEntities( STRING ) | ||
STRING decodeEntities( STRING ) | ||
``` | ||
@@ -217,5 +251,5 @@ | ||
```javascript | ||
var text = '<Hello>"&"<There>'; | ||
console.log( XML.decodeEntities(text) ); | ||
// Would output: <Hello>"&"<There> | ||
var text = '<Hello>"&"<There>'; | ||
console.log( XML.decodeEntities(text) ); | ||
// Would output: <Hello>"&"<There> | ||
``` | ||
@@ -226,3 +260,3 @@ | ||
``` | ||
ARRAY alwaysArray( MIXED ) | ||
ARRAY alwaysArray( MIXED ) | ||
``` | ||
@@ -233,3 +267,3 @@ | ||
```javascript | ||
var arr = XML.alwaysArray( maybe_array ); | ||
var arr = XML.alwaysArray( maybe_array ); | ||
``` | ||
@@ -240,3 +274,3 @@ | ||
``` | ||
ARRAY hashKeysToArray( OBJECT ) | ||
ARRAY hashKeysToArray( OBJECT ) | ||
``` | ||
@@ -247,9 +281,9 @@ | ||
```javascript | ||
var my_hash = { foo: "bar", baz: 12345 }; | ||
var keys = XML.hashKeysToArray( my_hash ).sort(); | ||
for (var idx = 0, len = keys.length; idx < len; idx++) { | ||
var key = keys[idx]; | ||
// do something with key and my_hash[key] | ||
} | ||
var my_hash = { foo: "bar", baz: 12345 }; | ||
var keys = XML.hashKeysToArray( my_hash ).sort(); | ||
for (var idx = 0, len = keys.length; idx < len; idx++) { | ||
var key = keys[idx]; | ||
// do something with key and my_hash[key] | ||
} | ||
``` | ||
@@ -260,3 +294,3 @@ | ||
``` | ||
BOOLEAN isaHash( MIXED ) | ||
BOOLEAN isaHash( MIXED ) | ||
``` | ||
@@ -267,4 +301,4 @@ | ||
```javascript | ||
var my_hash = { foo: "bar", baz: 12345 }; | ||
var is_hash = XML.isaHash( my_hash ); | ||
var my_hash = { foo: "bar", baz: 12345 }; | ||
var is_hash = XML.isaHash( my_hash ); | ||
``` | ||
@@ -275,3 +309,3 @@ | ||
``` | ||
BOOLEAN isaArray( MIXED ) | ||
BOOLEAN isaArray( MIXED ) | ||
``` | ||
@@ -282,4 +316,4 @@ | ||
```javascript | ||
var my_arr = [ "foo", "bar", 12345 ]; | ||
var is_arr = XML.isaArray( my_arr ); | ||
var my_arr = [ "foo", "bar", 12345 ]; | ||
var is_arr = XML.isaArray( my_arr ); | ||
``` | ||
@@ -290,3 +324,3 @@ | ||
``` | ||
INTEGER numKeys( OBJECT ) | ||
INTEGER numKeys( OBJECT ) | ||
``` | ||
@@ -297,4 +331,4 @@ | ||
```javascript | ||
var my_hash = { foo: "bar", baz: 12345 }; | ||
var num = XML.numKeys( my_hash ); // 2 | ||
var my_hash = { foo: "bar", baz: 12345 }; | ||
var num = XML.numKeys( my_hash ); // 2 | ||
``` | ||
@@ -305,3 +339,3 @@ | ||
``` | ||
STRING firstKey( OBJECT ) | ||
STRING firstKey( OBJECT ) | ||
``` | ||
@@ -312,4 +346,4 @@ | ||
```javascript | ||
var my_hash = { foo: "bar", baz: 12345 }; | ||
var key = XML.firstKey( my_hash ); // foo or baz | ||
var my_hash = { foo: "bar", baz: 12345 }; | ||
var key = XML.firstKey( my_hash ); // foo or baz | ||
``` | ||
@@ -324,4 +358,6 @@ | ||
Copyright (c) 2004 - 2015 Joseph Huckaby | ||
The MIT License | ||
Copyright (c) 2004 - 2016 Joseph Huckaby | ||
Permission is hereby granted, free of charge, to any person obtaining a copy | ||
@@ -328,0 +364,0 @@ of this software and associated documentation files (the "Software"), to deal |
@@ -73,2 +73,3 @@ /* | ||
XML.prototype.preserveDocumentNode = false; | ||
XML.prototype.preserveAttributes = false; | ||
@@ -234,3 +235,3 @@ XML.prototype.lowerCase = false; | ||
this.documentNodeName = first_key(this.tree); | ||
if (this.documentNodeName) { | ||
if (this.documentNodeName && !this.preserveDocumentNode) { | ||
this.tree = this.tree[this.documentNodeName]; | ||
@@ -237,0 +238,0 @@ } |
27568
513
347