Extensible Markup Language (XML) is a markup language that defines a set of rules for encoding documents in a format that is both human-readable and machine-readable.

1 Creating - xml file

XML is a markup language, which means that content is enclosed by tags. In XML, elementtags are enclosed in angle brackets:

Copy
<element>This is element text.</element>

A closing tag is indicated by a forward slash in front of the element name.

XML does not provide a set of predefined tags. Instead, you define your own tags and therelationships among the tags. This makes it possible to define and implement a contentstructure that matches the requirements of your information.
Copy
<xsql-script>
    <body>
        <set name='mCentreCode'>15</set>            
        <set name='mAddress'>Av Rep de Panama 5464</set>            
        <set name='mPostCode'>1525</set>           
        <set name='mTown'>San Isidro</set>       
        <set name='mProvince'>Lima</set>       
        <set name='mCountryCode'>1</set>
        <set name='mCentreDescription'>This is a short description</set>
        <set name='mXml'>
            <xml.xml encoding='utf-8'>
                <xml.Billing>
                    <xml.CentreCode><mCentreCode/></xml.CentreCode>
                    <xml.AddressInPeru>
                        <xml.Address><mAddress /></xml.Address>
                        <xml.PostCode><mPostCode /></xml.PostCode>
                        <xml.Town><mTown /></xml.Town>
                        <xml.Province><mProvince /></xml.Province>
                        <xml.CountryCode><mCountryCode /></xml.CountryCode>
                    </xml.AddressInPeru>
                    <xml.CentreDescription><mCentreDescription /></xml.CentreDescription>
                </xml.Billing>
            </xml.xml>
        </set>
        <println>
            <mXml/>
        </println>
    </body>
</xsql-script>
<?xml version='1.0' encoding='utf-8' ?>

    <Billing>
        <CentreCode>15</CentreCode>
        <AddressInPeru>
            <Address>Av Rep de Panama 5464</Address>
            <PostCode>1525</PostCode>
            <Town>San Isidro</Town>
            <Province>Lima</Province>
            <CountryCode>1</CountryCode>
        </AddressInPeru>
        <CentreDescription>This is a short description</CentreDescription>
    </Billing>
Copy
var mCentreCode = 15;
var mAddress = 'Av Rep de Panama 5464';
var mPostCode = 1525;
var mTown = 'San Isidro';
var mProvince = 'Lima';
var mCountryCode = 7;
var mCentreDescription = 'This is a short description';
var mStrXml = `
    <Billing>
        <CentreCode>${mCentreCode}</CentreCode>
        <AddressInPeru>
            <Address>${mAddress}</Address>
            <PostCode>${mPostCode}</PostCode>
            <Town>${mTown}</Town>
            <Province>${mProvince}</Province>
            <CountryCode>${mCountryCode}</CountryCode>
        </AddressInPeru>
        <CentreDescription>${mCentreDescription}</CentreDescription>
    </Billing>`;

var mDbf = new Ax.xml.DocumentBuilderFactory();
mParseXml = mDbf.parse(mStrXml);
console.log(mParseXml.getRootElement());
<Billing>
    <CentreCode>15</CentreCode>
    <AddressInPeru>
        <Address>Av Rep de Panama 5464</Address>
        <PostCode>1525</PostCode>
        <Town>San Isidro</Town>
        <Province>Lima</Province>
        <CountryCode>7</CountryCode>
    </AddressInPeru>
    <CentreDescription>This is a short description</CentreDescription>
</Billing>

2 XML to string

Returns a string representation of the XML document in UTF-8 encoding and including XML declaration.

Copy
<xsql-script>
    <body>
        <set name='mCentreCode'>15</set>            
        <set name='mAddress'>Av Rep de Panama 5464</set>            
        <set name='mPostCode'>1525</set>           
        <set name='mTown'>San Isidro</set>       
        <set name='mProvince'>Lima</set>       
        <set name='mCountryCode'>1</set>
        <set name='mCentreDescription'>This is a short description</set>
        <set name='mXml'>
            <dom.parse>
            <xml.xml encoding='utf-8'>
                <xml.Billing>
                    <xml.CentreCode><mCentreCode/></xml.CentreCode>
                    <xml.AddressInPeru>
                        <xml.Address><mAddress /></xml.Address>
                        <xml.PostCode><mPostCode /></xml.PostCode>
                        <xml.Town><mTown /></xml.Town>
                        <xml.Province><mProvince /></xml.Province>
                        <xml.CountryCode><mCountryCode /></xml.CountryCode>
                    </xml.AddressInPeru>
                    <xml.CentreDescription><mCentreDescription /></xml.CentreDescription>
                </xml.Billing>
            </xml.xml>
            </dom.parse>
        </set>
        
        <println>
            <string>
                <mXml/>
            </string>
        </println>
    </body>
</xsql-script>
<Billing>
    <CentreCode>15</CentreCode>
    <AddressInPeru>
        <Address>Av Rep de Panama 5464</Address>
        <PostCode>1525</PostCode>
        <Town>San Isidro</Town>
        <Province>Lima</Province>
        <CountryCode>1</CountryCode>
    </AddressInPeru>
    <CentreDescription>This is a short description</CentreDescription>
</Billing>
Copy
var mCentreCode = 15;
var mAddress = 'Av Rep de Panama 5464';
var mPostCode = 1525;
var mTown = 'San Isidro';
var mProvince = 'Lima';
var mCountryCode = 7;
var mCentreDescription = 'This is a short description';
var mStrXml = `
    <Billing>
        <CentreCode>${mCentreCode}</CentreCode>
        <AddressInPeru>
            <Address>${mAddress}</Address>
            <PostCode>${mPostCode}</PostCode>
            <Town>${mTown}</Town>
            <Province>${mProvince}</Province>
            <CountryCode>${mCountryCode}</CountryCode>
        </AddressInPeru>
        <CentreDescription>${mCentreDescription}</CentreDescription>
    </Billing>`;

var mDbf = new Ax.xml.DocumentBuilderFactory();
mParseXml = mDbf.parse(mStrXml);

console.log(mParseXml.getRootElement().toString());
<Billing>
    <CentreCode>15</CentreCode>
    <AddressInPeru>
        <Address>Av Rep de Panama 5464</Address>
        <PostCode>1525</PostCode>
        <Town>San Isidro</Town>
        <Province>Lima</Province>
        <CountryCode>7</CountryCode>
    </AddressInPeru>
    <CentreDescription>This is a short description</CentreDescription>
</Billing>

3 XML - The index-Of method

This method returns the position of the first coincidence in which the value of indicated argument is found. If the argument is not found in the string, the script will return -1 as result.

Copy
<xsql-script>
    <body>
        <set name='mCentreCode'>15</set>            
        <set name='mAddress'>Av Rep de Panama 5464</set>            
        <set name='mPostCode'>1525</set>           
        <set name='mTown'>San Isidro</set>       
        <set name='mProvince'>Lima</set>       
        <set name='mCountryCode'>1</set>
        <set name='mCentreDescription'>This is a short description</set>
        <set name='mXml'>
            <dom.parse>
                <xml.xml encoding='utf-8'>
                    <xml.Billing>
                        <xml.CentreCode><mCentreCode/></xml.CentreCode>
                        <xml.AddressInPeru>
                            <xml.Address><mAddress /></xml.Address>
                            <xml.PostCode><mPostCode /></xml.PostCode>
                            <xml.Town><mTown /></xml.Town>
                            <xml.Province><mProvince /></xml.Province>
                            <xml.CountryCode><mCountryCode /></xml.CountryCode>
                        </xml.AddressInPeru>
                        <xml.CentreDescription><mCentreDescription /></xml.CentreDescription>
                    </xml.Billing>
                </xml.xml>
            </dom.parse>
        </set>

        <println>
            <string.indexOf><mXml/><string>CentreCode</string></string.indexOf>
        </println>
    </body>
</xsql-script>
35
Copy
var mCentreCode = 15;
var mAddress = 'Av Rep de Panama 5464';
var mPostCode = 1525;
var mTown = 'San Isidro';
var mProvince = 'Lima';
var mCountryCode = 7;
var mCentreDescription = 'This is a short description';
var mStrXml = `
    <Billing>
        <CentreCode>${mCentreCode}</CentreCode>
        <AddressInPeru>
            <Address>${mAddress}</Address>
            <PostCode>${mPostCode}</PostCode>
            <Town>${mTown}</Town>
            <Province>${mProvince}</Province>
            <CountryCode>${mCountryCode}</CountryCode>
        </AddressInPeru>
        <CentreDescription>${mCentreDescription}</CentreDescription>
    </Billing>`;

var mDbf = new Ax.xml.DocumentBuilderFactory();
mParseXml = mDbf.parse(mStrXml);

var mStrString = mParseXml.getRootElement().toString();
var mIntPos    = mStrString.indexOf('CentreCode');

console.log(mIntPos);
15

4 XML to DOM

In some cases, when having a text that corresponds to a XML format, it can be very useful to cover it as a DOM structure to extract node's information, attribute's values, etc.

Copy
<xsql-script>
    <body>
        <set name='mCentreCode'>15</set>            
        <set name='mAddress'>Av Rep de Panama 5464</set>            
        <set name='mPostCode'>1525</set>           
        <set name='mTown'>San Isidro</set>       
        <set name='mProvince'>Lima</set>       
        <set name='mCountryCode'>1</set>
        <set name='mCentreDescription'>This is a short description</set>
        <set name='mXml'>
            <dom.parse>
                <xml.xml encoding='utf-8'>
                    <xml.Billing>
                        <xml.CentreCode><mCentreCode/></xml.CentreCode>
                        <xml.AddressInPeru>
                            <xml.Address><mAddress /></xml.Address>
                            <xml.PostCode><mPostCode /></xml.PostCode>
                            <xml.Town><mTown /></xml.Town>
                            <xml.Province><mProvince /></xml.Province>
                            <xml.CountryCode><mCountryCode /></xml.CountryCode>
                        </xml.AddressInPeru>
                        <xml.CentreDescription><mCentreDescription /></xml.CentreDescription>
                    </xml.Billing>
                </xml.xml>
            </dom.parse>
        </set>

        <println>
            <mXml/>
        </println>
    </body>
</xsql-script>
<Billing>
        <CentreCode>15</CentreCode>
        <AddressInPeru>
            <Address>Av Rep de Panama 5464</Address>
            <PostCode>1525</PostCode>
            <Town>San Isidro</Town>
            <Province>Lima</Province>
            <CountryCode>1</CountryCode>
        </AddressInPeru>
        <CentreDescription>This is a short description</CentreDescription>
    </Billing>
Copy
var mCentreCode = 15;
var mAddress = 'Av Rep de Panama 5464';
var mPostCode = 1525;
var mTown = 'San Isidro';
var mProvince = 'Lima';
var mCountryCode = 7;
var mCentreDescription = 'This is a short description';
var mStrXml = `
    <Billing>
        <CentreCode>${mCentreCode}</CentreCode>
        <AddressInPeru>
            <Address>${mAddress}</Address>
            <PostCode>${mPostCode}</PostCode>
            <Town>${mTown}</Town>
            <Province>${mProvince}</Province>
            <CountryCode>${mCountryCode}</CountryCode>
        </AddressInPeru>
        <CentreDescription>${mCentreDescription}</CentreDescription>
    </Billing>`;

var mDbf  = new Ax.xml.DocumentBuilderFactory();
mParseXml = mDbf.parse(mStrXml);
console.log(mParseXml);
<Billing>
            
    <CentreCode>15</CentreCode>
            
    <AddressInPeru>
                    
        <Address>Av Rep de Panama 5464</Address>
                    
        <PostCode>1525</PostCode>
                    
        <Town>San Isidro</Town>
                    
        <Province>Lima</Province>
                    
        <CountryCode>7</CountryCode>
                
    </AddressInPeru>
            
    <CentreDescription>This is a short description</CentreDescription>
        
</Billing>

4.1 getFirstChildElement

Returns the first element that is in the lower level.

Copy
<xsql-script>
    <body>
        <set name='mCentreCode'>15</set>            
        <set name='mAddress'>Av Rep de Panama 5464</set>            
        <set name='mPostCode'>1525</set>           
        <set name='mTown'>San Isidro</set>       
        <set name='mProvince'>Lima</set>       
        <set name='mCountryCode'>1</set>
        <set name='mCentreDescription'>This is a short description</set>
        <set name='mXml'>
            <dom.parse>
                <xml.xml encoding='utf-8'>
                    <xml.Billing>
                        <xml.CentreCode><mCentreCode/></xml.CentreCode>
                        <xml.AddressInPeru>
                            <xml.Address><mAddress /></xml.Address>
                            <xml.PostCode><mPostCode /></xml.PostCode>
                            <xml.Town><mTown /></xml.Town>
                            <xml.Province><mProvince /></xml.Province>
                            <xml.CountryCode><mCountryCode /></xml.CountryCode>
                        </xml.AddressInPeru>
                        <xml.CentreDescription><mCentreDescription /></xml.CentreDescription>
                    </xml.Billing>
                </xml.xml>
            </dom.parse>
        </set>

        <println>
            <dom.element.getFirstChildElement>
                <mXml/>
            </dom.element.getFirstChildElement>
        </println>
    </body>
</xsql-script>
<CentreCode>15</CentreCode>
Copy
var mCentreCode = 15;
var mAddress = 'Av Rep de Panama 5464';
var mPostCode = 1525;
var mTown = 'San Isidro';
var mProvince = 'Lima';
var mCountryCode = 7;
var mCentreDescription = 'This is a short description';
var mStrXml = `
    <Billing>
        <CentreCode>${mCentreCode}</CentreCode>
        <AddressInPeru>
            <Address>${mAddress}</Address>
            <PostCode>${mPostCode}</PostCode>
            <Town>${mTown}</Town>
            <Province>${mProvince}</Province>
            <CountryCode>${mCountryCode}</CountryCode>
        </AddressInPeru>
        <CentreDescription>${mCentreDescription}</CentreDescription>
    </Billing>`;

var mDbf  = new Ax.xml.DocumentBuilderFactory();
mParseXml = mDbf.parse(mStrXml);
console.log(mParseXml.getRootElement().getFirstChildElement());
<CentreCode>15</CentreCode>

4.2 getNextSiblingElement

To move along the same depth-level, getNextSiblingElement() returns the next node with the same parent.

Copy
<xsql-script>
    <body>
        <set name='mCentreCode'>15</set>            
        <set name='mAddress'>Av Rep de Panama 5464</set>            
        <set name='mPostCode'>1525</set>           
        <set name='mTown'>San Isidro</set>       
        <set name='mProvince'>Lima</set>       
        <set name='mCountryCode'>1</set>
        <set name='mCentreDescription'>This is a short description</set>
        <set name='mXml'>
            <dom.parse>
                <xml.xml encoding='utf-8'>
                    <xml.Billing>
                        <xml.CentreCode><mCentreCode/></xml.CentreCode>
                        <xml.AddressInPeru>
                            <xml.Address><mAddress /></xml.Address>
                            <xml.PostCode><mPostCode /></xml.PostCode>
                            <xml.Town><mTown /></xml.Town>
                            <xml.Province><mProvince /></xml.Province>
                            <xml.CountryCode><mCountryCode /></xml.CountryCode>
                        </xml.AddressInPeru>
                        <xml.CentreDescription><mCentreDescription /></xml.CentreDescription>
                    </xml.Billing>
                </xml.xml>
            </dom.parse>
        </set>

        <set name='elem1'>
            <dom.element.getFirstChildElement>
                <mXml/>
            </dom.element.getFirstChildElement>
        </set>

        <println>
            <dom.element.getNextSiblingElement>
                <elem1/>
            </dom.element.getNextSiblingElement>
        </println>
    </body>
</xsql-script>
<AddressInPeru>
    <Address>Av Rep de Panama 5464</Address>
    <PostCode>1525</PostCode>
    <Town>San Isidro</Town>
    <Province>Lima</Province>
    <CountryCode>1</CountryCode>
</AddressInPeru>
Copy
var mCentreCode = 15;
var mAddress = 'Av Rep de Panama 5464';
var mPostCode = 1525;
var mTown = 'San Isidro';
var mProvince = 'Lima';
var mCountryCode = 7;
var mCentreDescription = 'This is a short description';
var mStrXml = `
    <Billing>
        <CentreCode>${mCentreCode}</CentreCode>
        <AddressInPeru>
            <Address>${mAddress}</Address>
            <PostCode>${mPostCode}</PostCode>
            <Town>${mTown}</Town>
            <Province>${mProvince}</Province>
            <CountryCode>${mCountryCode}</CountryCode>
        </AddressInPeru>
        <CentreDescription>${mCentreDescription}</CentreDescription>
    </Billing>`;

var mDbf  = new Ax.xml.DocumentBuilderFactory();
mParseXml = mDbf.parse(mStrXml);
console.log(mParseXml.getRootElement().getFirstChildElement().getNextSiblingElement());
<AddressInPeru>
    <Address>Av Rep de Panama 5464</Address>
    <PostCode>1525</PostCode>
    <Town>San Isidro</Town>
    <Province>Lima</Province>
    <CountryCode>7</CountryCode>
</AddressInPeru>

4.3 getPreviousSiblingElement

On the other hand, getPreviousSibling() obtains the previous sibling.

Copy
<xsql-script>
    <body>
        <set name='mCentreCode'>15</set>            
        <set name='mAddress'>Av Rep de Panama 5464</set>            
        <set name='mPostCode'>1525</set>           
        <set name='mTown'>San Isidro</set>       
        <set name='mProvince'>Lima</set>       
        <set name='mCountryCode'>1</set>
        <set name='mCentreDescription'>This is a short description</set>
        <set name='mXml'>
            <dom.parse>
                <xml.xml encoding='utf-8'>
                    <xml.Billing>
                        <xml.CentreCode><mCentreCode/></xml.CentreCode>
                        <xml.AddressInPeru>
                            <xml.Address><mAddress /></xml.Address>
                            <xml.PostCode><mPostCode /></xml.PostCode>
                            <xml.Town><mTown /></xml.Town>
                            <xml.Province><mProvince /></xml.Province>
                            <xml.CountryCode><mCountryCode /></xml.CountryCode>
                        </xml.AddressInPeru>
                        <xml.CentreDescription><mCentreDescription /></xml.CentreDescription>
                    </xml.Billing>
                </xml.xml>
            </dom.parse>
        </set>

        <set name='elem1'>
            <dom.element.getFirstChildElement>
                <mXml/>
            </dom.element.getFirstChildElement>
        </set>

        <set name='elem2'>
            <dom.element.getNextSiblingElement>
                <elem1/>
            </dom.element.getNextSiblingElement>
        </set>

        <println>
            <dom.element.getPreviousSiblingElement>
                <elem2/>
            </dom.element.getPreviousSiblingElement>
        </println>
    </body>
</xsql-script>
<Billing>
    <CentreCode>15</CentreCode>
    <AddressInPeru>
        <Address>Av Rep de Panama 5464</Address>
        <PostCode>1525</PostCode>
        <Town>San Isidro</Town>
        <Province>Lima</Province>
        <CountryCode>1</CountryCode>
    </AddressInPeru>
    <CentreDescription>This is a short description</CentreDescription>
</Billing>
Copy
var mCentreCode = 15;
var mAddress = 'Av Rep de Panama 5464';
var mPostCode = 1525;
var mTown = 'San Isidro';
var mProvince = 'Lima';
var mCountryCode = 7;
var mCentreDescription = 'This is a short description';
var mStrXml = `
    <Billing>
        <CentreCode>${mCentreCode}</CentreCode>
        <AddressInPeru>
            <Address>${mAddress}</Address>
            <PostCode>${mPostCode}</PostCode>
            <Town>${mTown}</Town>
            <Province>${mProvince}</Province>
            <CountryCode>${mCountryCode}</CountryCode>
        </AddressInPeru>
        <CentreDescription>${mCentreDescription}</CentreDescription>
    </Billing>`;

var mDbf = new Ax.xml.DocumentBuilderFactory();
mParseXml = mDbf.parse(mStrXml);
console.log(mParseXml.getRootElement().getFirstChildElement().getPreviousSiblingElement());
<Billing>
    <CentreCode>15</CentreCode>
    <AddressInPeru>
        <Address>Av Rep de Panama 5464</Address>
        <PostCode>1525</PostCode>
        <Town>San Isidro</Town>
        <Province>Lima</Province>
        <CountryCode>7</CountryCode>
    </AddressInPeru>
    <CentreDescription>This is a short description</CentreDescription>
</Billing>

4.4 getParent

This method goes to the higher level by moving to the parent's node.

Copy
<xsql-script>
    <body>
        <set name='mCentreCode'>15</set>            
        <set name='mAddress'>Av Rep de Panama 5464</set>            
        <set name='mPostCode'>1525</set>           
        <set name='mTown'>San Isidro</set>       
        <set name='mProvince'>Lima</set>       
        <set name='mCountryCode'>1</set>
        <set name='mCentreDescription'>This is a short description</set>
        <set name='mXml'>
            <dom.parse>
                <xml.xml encoding='utf-8'>
                    <xml.Billing>
                        <xml.CentreCode><mCentreCode/></xml.CentreCode>
                        <xml.AddressInPeru>
                            <xml.Address><mAddress /></xml.Address>
                            <xml.PostCode><mPostCode /></xml.PostCode>
                            <xml.Town><mTown /></xml.Town>
                            <xml.Province><mProvince /></xml.Province>
                            <xml.CountryCode><mCountryCode /></xml.CountryCode>
                        </xml.AddressInPeru>
                        <xml.CentreDescription><mCentreDescription /></xml.CentreDescription>
                    </xml.Billing>
                </xml.xml>
            </dom.parse>
        </set>

        <println>
            <dom.node.getParentNode>
                <dom.element.getFirstChildElement><mXml/></dom.element.getFirstChildElement>
            </dom.node.getParentNode>
        </println>
        
    </body>
</xsql-script>
<Billing>
    <CentreCode>15</CentreCode>
    <AddressInPeru>
        <Address>Av Rep de Panama 5464</Address>
        <PostCode>1525</PostCode>
        <Town>San Isidro</Town>
        <Province>Lima</Province>
        <CountryCode>1</CountryCode>
    </AddressInPeru>
    <CentreDescription>This is a short description</CentreDescription>
</Billing>
Copy
var mCentreCode = 15;
var mAddress = 'Av Rep de Panama 5464';
var mPostCode = 1525;
var mTown = 'San Isidro';
var mProvince = 'Lima';
var mCountryCode = 7;
var mCentreDescription = 'This is a short description';
var mStrXml = `
    <Billing>
        <CentreCode>${mCentreCode}</CentreCode>
        <AddressInPeru>
            <Address>${mAddress}</Address>
            <PostCode>${mPostCode}</PostCode>
            <Town>${mTown}</Town>
            <Province>${mProvince}</Province>
            <CountryCode>${mCountryCode}</CountryCode>
        </AddressInPeru>
        <CentreDescription>${mCentreDescription}</CentreDescription>
    </Billing>`;

var mDbf  = new Ax.xml.DocumentBuilderFactory();
mParseXml = mDbf.parse(mStrXml);
console.log(mParseXml.getRootElement().getFirstChildElement().getParentElement());
<Billing>
    <CentreCode>15</CentreCode>
    <AddressInPeru>
        <Address>Av Rep de Panama 5464</Address>
        <PostCode>1525</PostCode>
        <Town>San Isidro</Town>
        <Province>Lima</Province>
        <CountryCode>1</CountryCode>
    </AddressInPeru>
    <CentreDescription>This is a short description</CentreDescription>
</Billing>

4.5 getname - ParentNode

This method gets the name of the parent node

Copy
<xsql-script>
    <body>
        <set name='mCentreCode'>15</set>            
        <set name='mAddress'>Av Rep de Panama 5464</set>            
        <set name='mPostCode'>1525</set>           
        <set name='mTown'>San Isidro</set>       
        <set name='mProvince'>Lima</set>       
        <set name='mCountryCode'>1</set>
        <set name='mCentreDescription'>This is a short description</set>
        <set name='mXml'>
            <dom.parse>
                <xml.xml encoding='utf-8'>
                    <xml.Billing>
                        <xml.CentreCode><mCentreCode/></xml.CentreCode>
                        <xml.AddressInPeru>
                            <xml.Address><mAddress /></xml.Address>
                            <xml.PostCode><mPostCode /></xml.PostCode>
                            <xml.Town><mTown /></xml.Town>
                            <xml.Province><mProvince /></xml.Province>
                            <xml.CountryCode><mCountryCode /></xml.CountryCode>
                        </xml.AddressInPeru>
                        <xml.CentreDescription><mCentreDescription /></xml.CentreDescription>
                    </xml.Billing>
                </xml.xml>
            </dom.parse>
        </set>

        <set name="mNodeName">
            <dom.node.getNodeName><mXml/></dom.node.getNodeName>
        </set>
        <println><mNodeName/></println>
    </body>
</xsql-script>
Billing
Copy
var mCentreCode = 15;
var mAddress = 'Av Rep de Panama 5464';
var mPostCode = 1525;
var mTown = 'San Isidro';
var mProvince = 'Lima';
var mCountryCode = 7;
var mCentreDescription = 'This is a short description';
var mStrXml = `
    <Billing>
        <CentreCode>${mCentreCode}</CentreCode>
        <AddressInPeru>
            <Address>${mAddress}</Address>
            <PostCode>${mPostCode}</PostCode>
            <Town>${mTown}</Town>
            <Province>${mProvince}</Province>
            <CountryCode>${mCountryCode}</CountryCode>
        </AddressInPeru>
        <CentreDescription>${mCentreDescription}</CentreDescription>
    </Billing>`;

var mDbf   = new Ax.xml.DocumentBuilderFactory();
mParseXml  = mDbf.parse(mStrXml);
mMainTag   = mParseXml.getRootElement().getTagName();
console.log(mMainTag);
Billing

4.6 getname - FirstChildElement

This method gets the name of the first child node.

Copy
<xsql-script>
    <body>
        <set name='mCentreCode'>15</set>            
        <set name='mAddress'>Av Rep de Panama 5464</set>            
        <set name='mPostCode'>1525</set>           
        <set name='mTown'>San Isidro</set>       
        <set name='mProvince'>Lima</set>       
        <set name='mCountryCode'>1</set>
        <set name='mCentreDescription'>This is a short description</set>
        <set name='mXml'>
            <dom.parse>
                <xml.xml encoding='utf-8'>
                    <xml.Billing>
                        <xml.CentreCode><mCentreCode/></xml.CentreCode>
                        <xml.AddressInPeru>
                            <xml.Address><mAddress /></xml.Address>
                            <xml.PostCode><mPostCode /></xml.PostCode>
                            <xml.Town><mTown /></xml.Town>
                            <xml.Province><mProvince /></xml.Province>
                            <xml.CountryCode><mCountryCode /></xml.CountryCode>
                        </xml.AddressInPeru>
                        <xml.CentreDescription><mCentreDescription /></xml.CentreDescription>
                    </xml.Billing>
                </xml.xml>
            </dom.parse>
        </set>

        <set name='elem_text'>
            <dom.element.getFirstChildElement><mXml /></dom.element.getFirstChildElement>
        </set>

        <println><dom.node.getNodeName><elem_text/></dom.node.getNodeName></println>
    </body>
</xsql-script>
CentreCode
Copy
var mCentreCode = 15;
var mAddress = 'Av Rep de Panama 5464';
var mPostCode = 1525;
var mTown = 'San Isidro';
var mProvince = 'Lima';
var mCountryCode = 7;
var mCentreDescription = 'This is a short description';
var mStrXml = `
    <Billing>
        <CentreCode>${mCentreCode}</CentreCode>
        <AddressInPeru>
            <Address>${mAddress}</Address>
            <PostCode>${mPostCode}</PostCode>
            <Town>${mTown}</Town>
            <Province>${mProvince}</Province>
            <CountryCode>${mCountryCode}</CountryCode>
        </AddressInPeru>
        <CentreDescription>${mCentreDescription}</CentreDescription>
    </Billing>`;

var mDbf  = new Ax.xml.DocumentBuilderFactory();
mParseXml = mDbf.parse(mStrXml);
mChildTag = mParseXml.getRootElement().getFirstChildElement().getTagName();
console.log(mChildTag);
CentreCode

4.7 getname - NextSiblingElement

This method gets the name of the next child node.

Copy
<xsql-script>
    <body>
        <set name='mCentreCode'>15</set>            
        <set name='mAddress'>Av Rep de Panama 5464</set>            
        <set name='mPostCode'>1525</set>           
        <set name='mTown'>San Isidro</set>       
        <set name='mProvince'>Lima</set>       
        <set name='mCountryCode'>1</set>
        <set name='mCentreDescription'>This is a short description</set>
        <set name='mXml'>
            <dom.parse>
                <xml.xml encoding='utf-8'>
                    <xml.Billing>
                        <xml.CentreCode><mCentreCode/></xml.CentreCode>
                        <xml.AddressInPeru>
                            <xml.Address><mAddress /></xml.Address>
                            <xml.PostCode><mPostCode /></xml.PostCode>
                            <xml.Town><mTown /></xml.Town>
                            <xml.Province><mProvince /></xml.Province>
                            <xml.CountryCode><mCountryCode /></xml.CountryCode>
                        </xml.AddressInPeru>
                        <xml.CentreDescription><mCentreDescription /></xml.CentreDescription>
                    </xml.Billing>
                </xml.xml>
            </dom.parse>
        </set>

        <set name='elem_text'>
            <dom.element.getFirstChildElement><mXml /></dom.element.getFirstChildElement>
        </set>

        <set name ='second_element'>
            <dom.element.getNextSiblingElement><elem_text/></dom.element.getNextSiblingElement>
        </set>

        <println><dom.node.getNodeName><second_element/></dom.node.getNodeName></println>
    </body>
</xsql-script>
AddressInPeru
Copy
var mCentreCode = 15;
var mAddress = 'Av Rep de Panama 5464';
var mPostCode = 1525;
var mTown = 'San Isidro';
var mProvince = 'Lima';
var mCountryCode = 7;
var mCentreDescription = 'This is a short description';
var mStrXml = `
    <Billing>
        <CentreCode>${mCentreCode}</CentreCode>
        <AddressInPeru>
            <Address>${mAddress}</Address>
            <PostCode>${mPostCode}</PostCode>
            <Town>${mTown}</Town>
            <Province>${mProvince}</Province>
            <CountryCode>${mCountryCode}</CountryCode>
        </AddressInPeru>
        <CentreDescription>${mCentreDescription}</CentreDescription>
    </Billing>`;

var mDbf  = new Ax.xml.DocumentBuilderFactory();
mParseXml = mDbf.parse(mStrXml);
mNextChildTag = mParseXml.getRootElement().getFirstChildElement().getNextSiblingElement();
mChildTag = mNextChildTag.getTagName();
console.log(mChildTag);
AddressInPeru

4.8 getvalue - FirstChildElement

This method gets the value of the first child node.

Copy
<xsql-script>
    <body>
        <set name='mCentreCode'>15</set>            
        <set name='mAddress'>Av Rep de Panama 5464</set>            
        <set name='mPostCode'>1525</set>           
        <set name='mTown'>San Isidro</set>       
        <set name='mProvince'>Lima</set>       
        <set name='mCountryCode'>1</set>
        <set name='mCentreDescription'>This is a short description</set>
        <set name='mXml'>
            <dom.parse>
            <xml.xml encoding='utf-8'>
                <xml.Billing>
                    <xml.CentreCode><mCentreCode/></xml.CentreCode>
                    <xml.AddressInPeru>
                        <xml.Address><mAddress /></xml.Address>
                        <xml.PostCode><mPostCode /></xml.PostCode>
                        <xml.Town><mTown /></xml.Town>
                        <xml.Province><mProvince /></xml.Province>
                        <xml.CountryCode><mCountryCode /></xml.CountryCode>
                    </xml.AddressInPeru>
                    <xml.CentreDescription><mCentreDescription /></xml.CentreDescription>
                </xml.Billing>
            </xml.xml>
            </dom.parse>
        </set>
        <set name='elem_text'>
            <dom.node.getFirstChild>
                <dom.element.getFirstChildElement><mXml /></dom.element.getFirstChildElement>
            </dom.node.getFirstChild>
        </set>
        <println><dom.node.getNodeValue><elem_text/></dom.node.getNodeValue></println>
    </body>
</xsql-script>
15
Copy
var mCentreCode = 15;
var mAddress = 'Av Rep de Panama 5464';
var mPostCode = 1525;
var mTown = 'San Isidro';
var mProvince = 'Lima';
var mCountryCode = 7;
var mCentreDescription = 'This is a short description';
var mStrXml = `
    <Billing>
        <CentreCode>${mCentreCode}</CentreCode>
        <AddressInPeru>
            <Address>${mAddress}</Address>
            <PostCode>${mPostCode}</PostCode>
            <Town>${mTown}</Town>
            <Province>${mProvince}</Province>
            <CountryCode>${mCountryCode}</CountryCode>
        </AddressInPeru>
        <CentreDescription>${mCentreDescription}</CentreDescription>
    </Billing>`;

var mDbf = new Ax.xml.DocumentBuilderFactory();
mParseXml = mDbf.parse(mStrXml);
console.log(mParseXml.getRootElement().getFirstChildElement().getChildCharacterData());
15

4.9 remove FirstElement

Deletes a node of the child's list of the indicated node and return it.

Copy
<xsql-script>
    <body>
        <set name='mCentreCode'>15</set>            
        <set name='mAddress'>Av Rep de Panama 5464</set>            
        <set name='mPostCode'>1525</set>           
        <set name='mTown'>San Isidro</set>       
        <set name='mProvince'>Lima</set>       
        <set name='mCountryCode'>1</set>
        <set name='mCentreDescription'>This is a short description</set>
        <set name='mXml'>
            <dom.parse>
            <xml.xml encoding='utf-8'>
                <xml.Billing>
                    <xml.CentreCode><mCentreCode/></xml.CentreCode>
                    <xml.AddressInPeru>
                        <xml.Address><mAddress /></xml.Address>
                        <xml.PostCode><mPostCode /></xml.PostCode>
                        <xml.Town><mTown /></xml.Town>
                        <xml.Province><mProvince /></xml.Province>
                        <xml.CountryCode><mCountryCode /></xml.CountryCode>
                    </xml.AddressInPeru>
                    <xml.CentreDescription><mCentreDescription /></xml.CentreDescription>
                </xml.Billing>
            </xml.xml>
            </dom.parse>
        </set>

        <set name='node_del'>
            <dom.element.getFirstChildElement><mXml /></dom.element.getFirstChildElement>
        </set>

        <dom.node.removeChild>
            <mXml/>
            <node_del/>
        </dom.node.removeChild>

        <println>
            <mXml/>
        </println>
    </body>
</xsql-script>
<Billing>

    <AddressInPeru>
        <Address>Av Rep de Panama 5464</Address>
        <PostCode>1525</PostCode>
        <Town>San Isidro</Town>
        <Province>Lima</Province>
        <CountryCode>7</CountryCode>
    </AddressInPeru>
    <CentreDescription>This is a short description</CentreDescription>
</Billing>
Copy
var mCentreCode = 15;
var mAddress = 'Av Rep de Panama 5464';
var mPostCode = 1525;
var mTown = 'San Isidro';
var mProvince = 'Lima';
var mCountryCode = 7;
var mCentreDescription = 'This is a short description';
var mStrXml = `
    <Billing>
        <CentreCode>${mCentreCode}</CentreCode>
        <AddressInPeru>
            <Address>${mAddress}</Address>
            <PostCode>${mPostCode}</PostCode>
            <Town>${mTown}</Town>
            <Province>${mProvince}</Province>
            <CountryCode>${mCountryCode}</CountryCode>
        </AddressInPeru>
        <CentreDescription>${mCentreDescription}</CentreDescription>
    </Billing>`;

var mDbf  = new Ax.xml.DocumentBuilderFactory();
mParseXml = mDbf.parse(mStrXml);
mChildTag = mParseXml.getRootElement().getFirstChildElement();
var mStrResult = mParseXml.getRootElement().toString().replace(mChildTag, "");
mParseXml = mDbf.parse(mStrResult);
console.log(mParseXml.getRootElement());
<Billing>
    <AddressInPeru>
        <Address>Av Rep de Panama 5464</Address>
        <PostCode>1525</PostCode>
        <Town>San Isidro</Town>
        <Province>Lima</Province>
        <CountryCode>7</CountryCode>
    </AddressInPeru>
    <CentreDescription>This is a short description</CentreDescription>
</Billing>

4.10 replace FirstElement

Replace the child node.

Copy
<xsql-script>
    <body>
        <set name='root_ori'>
        <dom.parse>
            <xml.xml encoding='utf-8'>
            <xml.Billing>
                <xml.CentreCode>15</xml.CentreCode>
                <xml.PostCode>1504</xml.PostCode>
            </xml.Billing>
            </xml.xml>
        </dom.parse>
        </set>
        <set name='root_rpl'>
        <dom.parse>
            <xml.xml encoding='utf-8'>
            <xml.Billing>
                <xml.CentreCode>31</xml.CentreCode>
                <xml.PostCode>1785</xml.PostCode>
            </xml.Billing>
            </xml.xml>
        </dom.parse>
        </set>
        <set name='node_rpl'>
            <dom.document.importNode>
                <root_ori/>
                <dom.element.getFirstChildElement><root_rpl/></dom.element.getFirstChildElement>
            </dom.document.importNode>
        </set>

        <dom.node.replaceChild>
            <root_ori/>
            <node_rpl/>
            <dom.element.getFirstChildElement><root_ori /></dom.element.getFirstChildElement>
        </dom.node.replaceChild>
        <println>
            <root_ori/>
        </println>

    </body>
</xsql-script>
<Billing>
    <CentreCode>31</CentreCode>
    <PostCode>1504</PostCode>
</Billing>
Copy
var mStrXml1 = `
    <Billing>
        <CentreCode>15</CentreCode>
        <PostCode>1504</PostCode>
    </Billing>`;

var mStrXml2 = `
    <Billing>
        <CentreCode>31</CentreCode>
        <PostCode>1785</PostCode>
    </Billing>`;

var mDbf1  = new Ax.xml.DocumentBuilderFactory();
var mDbf2  = new Ax.xml.DocumentBuilderFactory();
mParseXml1 = mDbf1.parse(mStrXml1);
mParseXml2 = mDbf2.parse(mStrXml2);
mChildTag1 = mParseXml1.getRootElement().getFirstChildElement();
mChildTag2 = mParseXml2.getRootElement().getFirstChildElement();
var mStrResult = mParseXml1.getRootElement().toString().replace(mChildTag1, mChildTag2);
mParseXml1 = mDbf1.parse(mStrResult);
console.log(mParseXml1.getRootElement());
<Billing>
    <CentreCode>31</CentreCode>
    <PostCode>1504</PostCode>
</Billing>

4.11 setAttribute

Add attributes in top-level XML elements

Copy
<xsql-script>
    <body>
        <set name='mversion'>1.1</set>
        <set name='mCentreCode'>15</set>            
        <set name='mAddress'>Av Rep de Panama 5464</set>            
        <set name='mPostCode'>1525</set>           
        <set name='mTown'>San Isidro</set>       
        <set name='mProvince'>Lima</set>       
        <set name='mCountryCode'>1</set>
        <set name='mCentreDescription'>This is a short description</set>
        <set name='mXml'>
            <dom.parse>
            <xml.xml encoding='utf-8'>
                <xml.Billing>
                    <xml.CentreCode><mCentreCode/></xml.CentreCode>
                    <xml.AddressInPeru>
                        <xml.Address><mAddress /></xml.Address>
                        <xml.PostCode><mPostCode /></xml.PostCode>
                        <xml.Town><mTown /></xml.Town>
                        <xml.Province><mProvince /></xml.Province>
                        <xml.CountryCode><mCountryCode /></xml.CountryCode>
                    </xml.AddressInPeru>
                    <xml.CentreDescription><mCentreDescription /></xml.CentreDescription>
                </xml.Billing>
            </xml.xml>
            </dom.parse>
        </set>

        <dom.element.setAttribute attr='xmlns'>
           <mXml />
           <add><string>urn:OECD:StandardAuditFile-Tax:PT_</string><mversion/></add>
        </dom.element.setAttribute>
        
        <println>
            <string>
                <mXml/>
            </string>
        </println>
    </body>
</xsql-script>
<Billing xmlns="urn:OECD:StandardAuditFile-Tax:PT_1.1">
    <CentreCode>15</CentreCode>
    <AddressInPeru>
        <Address>Av Rep de Panama 5464</Address>
        <PostCode>1525</PostCode>
        <Town>San Isidro</Town>
        <Province>Lima</Province>
        <CountryCode>7</CountryCode>
    </AddressInPeru>
    <CentreDescription>This is a short description</CentreDescription>
</Billing>
Copy
var mVersion = 1.1;
var mCentreCode = 15;
var mAddress = 'Av Rep de Panama 5464';
var mPostCode = 1525;
var mTown = 'San Isidro';
var mProvince = 'Lima';
var mCountryCode = 7;
var mCentreDescription = 'This is a short description';
var mStrXml = `
    <Billing>
        <CentreCode>${mCentreCode}</CentreCode>
        <AddressInPeru>
            <Address>${mAddress}</Address>
            <PostCode>${mPostCode}</PostCode>
            <Town>${mTown}</Town>
            <Province>${mProvince}</Province>
            <CountryCode>${mCountryCode}</CountryCode>
        </AddressInPeru>
        <CentreDescription>${mCentreDescription}</CentreDescription>
    </Billing>`;

var mDbf   = new Ax.xml.DocumentBuilderFactory();
mParseXml  = mDbf.parse(mStrXml);
mMainTag   = mParseXml.getRootElement().getTagName();
mStrTag = `<${mMainTag}>`;
mSetAttribute = `<${mMainTag} xmlns='urn:OECD:StandardAuditFile-Tax:PT_${mVersion}'>`
var mStrResult = mParseXml.getRootElement().toString().replace(mStrTag, mSetAttribute);
mParseXml = mDbf.parse(mStrResult);

console.log(mParseXml.getRootElement());
<Billing xmlns="urn:OECD:StandardAuditFile-Tax:PT_1.1">
    <CentreCode>15</CentreCode>
    <AddressInPeru>
        <Address>Av Rep de Panama 5464</Address>
        <PostCode>1525</PostCode>
        <Town>San Isidro</Town>
        <Province>Lima</Province>
        <CountryCode>7</CountryCode>
    </AddressInPeru>
    <CentreDescription>This is a short description</CentreDescription>
</Billing>

4.12 getAttribute

Returns the value of an attribute of a node element.

Copy
<xsql-script>
    <body>
        <set name='mCentreCode'>15</set>            
        <set name='mAddress'>Av Rep de Panama 5464</set>            
        <set name='mPostCode'>1525</set>           
        <set name='mTown'>San Isidro</set>       
        <set name='mProvince'>Lima</set>       
        <set name='mCountryCode'>1</set>
        <set name='mCentreDescription'>This is a short description</set>
        <set name='mXml'>
            <dom.parse>
            <xml.xml encoding='utf-8'>
                <xml.Billing xmlns="urn:OECD:StandardAuditFile-Tax:PT_1.1">
                    <xml.CentreCode><mCentreCode/></xml.CentreCode>
                    <xml.AddressInPeru>
                        <xml.Address><mAddress /></xml.Address>
                        <xml.PostCode><mPostCode /></xml.PostCode>
                        <xml.Town><mTown /></xml.Town>
                        <xml.Province><mProvince /></xml.Province>
                        <xml.CountryCode><mCountryCode /></xml.CountryCode>
                    </xml.AddressInPeru>
                    <xml.CentreDescription><mCentreDescription /></xml.CentreDescription>
                </xml.Billing>
            </xml.xml>
            </dom.parse>
        </set>

        <println>
            <dom.element.getAttribute attr='xmlns'>
            <mXml />
            </dom.element.getAttribute>
        </println>
    </body>
</xsql-script>
urn:OECD:StandardAuditFile-Tax:PT_1.1
Copy
var mCentreCode = 15;
var mAddress = 'Av Rep de Panama 5464';
var mPostCode = 1525;
var mTown = 'San Isidro';
var mProvince = 'Lima';
var mCountryCode = 7;
var mCentreDescription = 'This is a short description';
var mStrXml = `
    <Billing xmlns="urn:OECD:StandardAuditFile-Tax:PT_1.1">
        <CentreCode>${mCentreCode}</CentreCode>
        <AddressInPeru>
            <Address>${mAddress}</Address>
            <PostCode>${mPostCode}</PostCode>
            <Town>${mTown}</Town>
            <Province>${mProvince}</Province>
            <CountryCode>${mCountryCode}</CountryCode>
        </AddressInPeru>
        <CentreDescription>${mCentreDescription}</CentreDescription>
    </Billing>`;
var mDbf = new Ax.xml.DocumentBuilderFactory();
mParseXml = mDbf.parse(mStrXml);
console.log(mParseXml.getRootElement().getAttribute('xmlns'));
urn:OECD:StandardAuditFile-Tax:PT_1.1