AX 2012 : Remove an XML node through X++
Views (2660)
Following code snippet may help you to remove an XML node from an XML message string.
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>
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>
This was originally posted here.

Like
Report
*This post is locked for comments