Skip to content

Commit 58dacd0

Browse files
Merge pull request #5930 from zyhfish/task/fix-bug-5894
Fix #5894: remove the child node with null reference check.
2 parents 65b8151 + 7ea5b5c commit 58dacd0

File tree

3 files changed

+53
-36
lines changed

3 files changed

+53
-36
lines changed

DNN Platform/Library/Common/Utilities/XmlExtensions.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,23 @@ public static XmlNode AddAttribute(this XmlNode node, string attributeName, stri
9898
newAttribute.InnerText = attributeValue;
9999
node.Attributes.Append(newAttribute);
100100
return node;
101+
}
102+
103+
/// <summary>
104+
/// Remove the child node with the provided name.
105+
/// </summary>
106+
/// <param name="node">The parent node.</param>
107+
/// <param name="childNodeName">The child node name.</param>
108+
public static void RemoveChildNode(this XmlNode node, string childNodeName)
109+
{
110+
if (node != null)
111+
{
112+
var childNode = node.SelectSingleNode(childNodeName);
113+
if (childNode != null)
114+
{
115+
node.RemoveChild(childNode);
116+
}
117+
}
101118
}
102119
}
103120
}

DNN Platform/Library/Entities/Modules/ModuleController.cs

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -244,15 +244,15 @@ public static XmlNode SerializeModule(XmlDocument xmlModule, ModuleInfo module,
244244
}
245245

246246
// remove unwanted elements
247-
moduleNode.RemoveChild(moduleNode.SelectSingleNode("portalid"));
248-
moduleNode.RemoveChild(moduleNode.SelectSingleNode("tabid"));
249-
moduleNode.RemoveChild(moduleNode.SelectSingleNode("tabmoduleid"));
250-
moduleNode.RemoveChild(moduleNode.SelectSingleNode("moduleorder"));
251-
moduleNode.RemoveChild(moduleNode.SelectSingleNode("panename"));
252-
moduleNode.RemoveChild(moduleNode.SelectSingleNode("isdeleted"));
253-
moduleNode.RemoveChild(moduleNode.SelectSingleNode("versionGuid"));
254-
moduleNode.RemoveChild(moduleNode.SelectSingleNode("localizedVersionGuid"));
255-
moduleNode.RemoveChild(moduleNode.SelectSingleNode("content"));
247+
moduleNode.RemoveChildNode("portalid");
248+
moduleNode.RemoveChildNode("tabid");
249+
moduleNode.RemoveChildNode("tabmoduleid");
250+
moduleNode.RemoveChildNode("moduleorder");
251+
moduleNode.RemoveChildNode("panename");
252+
moduleNode.RemoveChildNode("isdeleted");
253+
moduleNode.RemoveChildNode("versionGuid");
254+
moduleNode.RemoveChildNode("localizedVersionGuid");
255+
moduleNode.RemoveChildNode("content");
256256

257257
// support for localized templates
258258
// moduleNode.RemoveChild(moduleNode.SelectSingleNode("uniqueId"));
@@ -268,13 +268,13 @@ public static XmlNode SerializeModule(XmlDocument xmlModule, ModuleInfo module,
268268
{
269269
foreach (XmlNode nodePermission in xmlNodeList)
270270
{
271-
nodePermission.RemoveChild(nodePermission.SelectSingleNode("modulepermissionid"));
272-
nodePermission.RemoveChild(nodePermission.SelectSingleNode("permissionid"));
273-
nodePermission.RemoveChild(nodePermission.SelectSingleNode("moduleid"));
274-
nodePermission.RemoveChild(nodePermission.SelectSingleNode("roleid"));
275-
nodePermission.RemoveChild(nodePermission.SelectSingleNode("userid"));
276-
nodePermission.RemoveChild(nodePermission.SelectSingleNode("username"));
277-
nodePermission.RemoveChild(nodePermission.SelectSingleNode("displayname"));
271+
nodePermission.RemoveChildNode("modulepermissionid");
272+
nodePermission.RemoveChildNode("permissionid");
273+
nodePermission.RemoveChildNode("moduleid");
274+
nodePermission.RemoveChildNode("roleid");
275+
nodePermission.RemoveChildNode("userid");
276+
nodePermission.RemoveChildNode("username");
277+
nodePermission.RemoveChildNode("displayname");
278278
}
279279
}
280280

DNN Platform/Library/Entities/Tabs/TabController.cs

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -679,19 +679,19 @@ public static XmlNode SerializeTab(XmlDocument tabXml, Hashtable tabs, TabInfo t
679679

680680
// remove unwanted elements
681681
// ReSharper disable AssignNullToNotNullAttribute
682-
tabNode.RemoveChild(tabNode.SelectSingleNode("tabid"));
683-
tabNode.RemoveChild(tabNode.SelectSingleNode("moduleID"));
684-
tabNode.RemoveChild(tabNode.SelectSingleNode("taborder"));
685-
tabNode.RemoveChild(tabNode.SelectSingleNode("portalid"));
686-
tabNode.RemoveChild(tabNode.SelectSingleNode("parentid"));
687-
tabNode.RemoveChild(tabNode.SelectSingleNode("isdeleted"));
688-
tabNode.RemoveChild(tabNode.SelectSingleNode("tabpath"));
689-
tabNode.RemoveChild(tabNode.SelectSingleNode("haschildren"));
690-
tabNode.RemoveChild(tabNode.SelectSingleNode("skindoctype"));
691-
tabNode.RemoveChild(tabNode.SelectSingleNode("uniqueid"));
692-
tabNode.RemoveChild(tabNode.SelectSingleNode("versionguid"));
693-
tabNode.RemoveChild(tabNode.SelectSingleNode("defaultLanguageGuid"));
694-
tabNode.RemoveChild(tabNode.SelectSingleNode("localizedVersionGuid"));
682+
tabNode.RemoveChildNode("tabid");
683+
tabNode.RemoveChildNode("moduleID");
684+
tabNode.RemoveChildNode("taborder");
685+
tabNode.RemoveChildNode("portalid");
686+
tabNode.RemoveChildNode("parentid");
687+
tabNode.RemoveChildNode("isdeleted");
688+
tabNode.RemoveChildNode("tabpath");
689+
tabNode.RemoveChildNode("haschildren");
690+
tabNode.RemoveChildNode("skindoctype");
691+
tabNode.RemoveChildNode("uniqueid");
692+
tabNode.RemoveChildNode("versionguid");
693+
tabNode.RemoveChildNode("defaultLanguageGuid");
694+
tabNode.RemoveChildNode("localizedVersionGuid");
695695
XmlNodeList xmlNodeList = tabNode.SelectNodes("tabpermissions/permission");
696696
if (xmlNodeList != null && xmlNodeList.Count == 0)
697697
{
@@ -723,13 +723,13 @@ public static XmlNode SerializeTab(XmlDocument tabXml, Hashtable tabs, TabInfo t
723723
{
724724
foreach (XmlNode nodePermission in xmlNodeList)
725725
{
726-
nodePermission.RemoveChild(nodePermission.SelectSingleNode("tabpermissionid"));
727-
nodePermission.RemoveChild(nodePermission.SelectSingleNode("permissionid"));
728-
nodePermission.RemoveChild(nodePermission.SelectSingleNode("tabid"));
729-
nodePermission.RemoveChild(nodePermission.SelectSingleNode("roleid"));
730-
nodePermission.RemoveChild(nodePermission.SelectSingleNode("userid"));
731-
nodePermission.RemoveChild(nodePermission.SelectSingleNode("username"));
732-
nodePermission.RemoveChild(nodePermission.SelectSingleNode("displayname"));
726+
nodePermission.RemoveChildNode("tabpermissionid");
727+
nodePermission.RemoveChildNode("permissionid");
728+
nodePermission.RemoveChildNode("tabid");
729+
nodePermission.RemoveChildNode("roleid");
730+
nodePermission.RemoveChildNode("userid");
731+
nodePermission.RemoveChildNode("username");
732+
nodePermission.RemoveChildNode("displayname");
733733
}
734734
}
735735

0 commit comments

Comments
 (0)