Skip to content

A NativeScript module that provides handling XML data as objects similar to LINQ to XML.

License

Notifications You must be signed in to change notification settings

mkloubert/nativescript-xmlobjects

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

npm npm

NativeScript XML Objects

A NativeScript module that provides handling XML data as objects similar to LINQ to XML.

Donate

NativeScript Toolbox

This module is part of nativescript-toolbox.

License

MIT license

Platforms

  • Android
  • iOS

Installation

Run

tns plugin add nativescript-xmlobjects

inside your app project to install the module.

Usage

import XmlObjects = require('nativescript-xmlobjects');

var doc = XmlObjects.parse(`<PurchaseOrder PurchaseOrderNumber="99503" OrderDate="1999-10-20">
  <Address Type="Shipping">
    <Name>Ellen Adams</Name>
    <Street>123 Maple Street</Street>
    <City>Mill Valley</City>
    <State>CA</State>
    <Zip>10999</Zip>
    <Country>USA</Country>
  </Address>
  <Address Type="Billing">
    <Name>Tai Yee</Name>
    <Street>8 Oak Avenue</Street>
    <City>Old Town</City>
    <State>PA</State>
    <Zip>95819</Zip>
    <Country>USA</Country>
  </Address>
  <DeliveryNotes>Please leave packages in shed by driveway.</DeliveryNotes>
  <Items>
    <Item PartNumber="872-AA">
      <ProductName>Lawnmower</ProductName>
      <Quantity>1</Quantity>
      <USPrice>148.95</USPrice>
      <Comment>Confirm this is electric</Comment>
    </Item>
    <Item PartNumber="926-AA">
      <ProductName>Baby Monitor</ProductName>
      <Quantity>2</Quantity>
      <USPrice>39.98</USPrice>
      <ShipDate>1999-05-21</ShipDate>
    </Item>
  </Items>
</PurchaseOrder>`);

Enumerate nodes:

// XElement
var rootElement = doc.root;

// XElement[]
var allChildElements = rootElement.elements();

var addressElements = rootElement.elements('Address');
for (var i = 0; i < addressElements.length; i++) {
    var ae = addressElements[i];
    
    // XAttribute
    var typeAttribute = ae.attribute('Type');
    console.log('Type attribute: ' + typeAttribute.value);
}

// XNode[]
var allNodes = rootElement.nodes();
for (var i = 0; i < allNodes.length; i++) {
    var n = allNodes[i];
    
    if (n instanceof XmlObjects.XElement) {
        // XAttribute[]
        var allAttributes = n.attributes();  // the attributes
        
        console.log("I am an element with attributes: " + n.value);
    }
    else if (n instanceof XmlObjects.XComment) {
        console.log("I am a comment: " + n.value);
    }
    else if (n instanceof XmlObjects.XText) {
        console.log("I am a text." + n.value);
    }
    else if (n instanceof XmlObjects.XCData) {
        console.log("I am a CDATA: " + n.value);
    }
}

// create XML string
var xmlStr = rootElement.toString();

About

A NativeScript module that provides handling XML data as objects similar to LINQ to XML.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published