AX 2012 : Remove an XML node through X++

AX 2012 : Remove an XML node through X++

MCP · Azure DevOpsYour delivery board, readable by an agentMCP · DataverseOne consent, and the data layer opensMCP · Dynamics 365 F&OConnecting F&O to an agent Microsoft hasn’t documented
Following code snippet may help you to remove an XML node from an XML message string.


private str removeXMLTag(str xml)
{
    XmlDocument         doc = new XmlDocument();
    XmlElement          nodeScript;
    XmlNode             parentNode, childNode;
    XmlNodeList         xmlScriptList,
                        parentNodeList,
                        childNodeList;

    int                 i,j;

    doc.loadXml(xml);

    // Get the root element and its child nodes
    nodeScript = doc.getNamedElement("SalesOrder");
    xmlScriptList = nodeScript.childNodes();

    for(i=0; i < xmlScriptList.length(); i++)
    {
        parentNode = xmlScriptList.item(i);
        childNodeList = parentNode.childNodes();

        for (j=0; j < childNodeList.length(); j++)
        {
            childNode = childNodeList.item(j);
            if (childNode.selectSingleNode("Notes"))
            {
                parentNode.removeChild(childNode);
            }
        }
    }

    return doc.outerXml();
}

This will remove DocuRef node along with its child nodes. 

Original XML message

<?xml version="1.0" encoding="utf-8"?>                            
<SalesOrder xmlns = "http://schemas.microsoft.com/dynamics/2008/01/documents/SalesOrder">                                        
<DocuRef class = "entity">
        <Notes>Business Name</Notes>
</DocuRef>

</SalesOrder>

XML message after node being removed

<?xml version="1.0" encoding="utf-8"?>                            
<SalesOrder xmlns = "http://schemas.microsoft.com/dynamics/2008/01/documents/SalesOrder">                                  
</SalesOrder>
Previous article← AX 2012: Reading files from directory through X++
Discussion

Ask a question or leave feedback

This is a review interaction. The WordPress version will store, thread and moderate comments.

Thanks — submitted for moderation in this review.
Search the whole site · Ctrl/⌘ + K