/** * Register XML replace patch */ internal void RegisterPatch(string movie, string xpath, PrefabExtensionReplacePatch patch) { RegisterPatch(movie, xpath, (node) => { var extensionNode = LoadPrefabExtension(patch.Name); var importedExtensionNode = node.OwnerDocument.ImportNode(extensionNode, true); node.ParentNode.ReplaceChild(importedExtensionNode, node); }); }
/// <summary> /// Register snippet replace patch /// </summary> /// <param name="movie"></param> /// <param name="xpath"></param> /// <param name="patch"></param> public void RegisterPatch(string movie, string?xpath, PrefabExtensionReplacePatch patch) { RegisterPatch(movie, xpath, node => { var ownerDocument = node is XmlDocument xmlDocument ? xmlDocument : node.OwnerDocument !; if (node.ParentNode == null) { return; } var extensionNode = patch.GetPrefabExtension().DocumentElement; var importedExtensionNode = ownerDocument.ImportNode(extensionNode, true); node.ParentNode.ReplaceChild(importedExtensionNode, node); }); }