Sample code for 30+ languages & platforms
Java

XML Add Child Tree

Demonstrates the Xml.AddChildTree method.

Chilkat Java Downloads

Chilkat2 Java
import com.chilkatsoft.chilkat2.ChilkatException;
import com.chilkatsoft.chilkat2.Xml;

public class ChilkatExample {

    public static void main(String[] args) {
        // Build the following XML:

        // <?xml version="1.0" encoding="utf-8"?>
        // <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
        //     <soap12:Body>
        //         <cteDadosMsg xmlns="http://www.portalfiscal.inf.br/cte/wsdl/CTeStatusServicoV4">
        //        </cteDadosMsg>
        //     </soap12:Body>
        // </soap12:Envelope>

        Xml xml = new Xml();
        xml.setTag("soap12:Envelope");
        xml.addAttribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");
        xml.addAttribute("xmlns:xsd", "http://www.w3.org/2001/XMLSchema");
        xml.addAttribute("xmlns:soap12", "http://www.w3.org/2003/05/soap-envelope");
        xml.updateAttrAt("soap12:Body|cteDadosMsg", true, "xmlns", "http://www.portalfiscal.inf.br/cte/wsdl/CTeStatusServicoV4");

        // We want to add the following XML as a sub-tree under the "cteDadosMsg" element.

        // <consStatServCTe versao="4.00" xmlns="http://www.portalfiscal.inf.br/cte">
        //     <tpAmb>2</tpAmb>
        //     <cUF>43</cUF>
        //     <xServ>STATUS</xServ>
        // </consStatServCTe>

        // Build the XML to be added as a child tree.

        Xml xml2 = new Xml();
        xml2.setTag("consStatServCTe");
        xml2.addAttribute("versao", "4.00");
        xml2.addAttribute("xmlns", "http://www.portalfiscal.inf.br/cte");
        xml2.updateChildContent("tpAmb", "2");
        xml2.updateChildContent("cUF", "43");
        xml2.updateChildContent("xServ", "STATUS");

        // Add the child tree at the desired location:
        // Temporarily point to the location where we wish to add the child tree.
        try {
            xml.findChild2("soap12:Body|cteDadosMsg");
        } catch (ChilkatException e) {
            // Restore current location to the root.
            xml.getRoot2();
            return;
        }

        xml.addChildTree(xml2);
        // Restore the current location to the root.
        xml.getRoot2();

        // You can see now that the XML contain the child tree:

        System.out.println(xml.getXml());

        // <?xml version="1.0" encoding="utf-8"?>
        // <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
        //     <soap12:Body>
        //         <cteDadosMsg xmlns="http://www.portalfiscal.inf.br/cte/wsdl/CTeStatusServicoV4">
        //             <consStatServCTe versao="4.00" xmlns="http://www.portalfiscal.inf.br/cte">
        //                 <tpAmb>2</tpAmb>
        //                 <cUF>43</cUF>
        //                 <xServ>STATUS</xServ>
        //             </consStatServCTe>
        //         </cteDadosMsg>
        //     </soap12:Body>
        // </soap12:Envelope>
    }
}