public bool ContainsNode(IFindCriteria <XmlNode> parentNodeCriteria, IFindCriteria <XmlNode> containsCriteria) { var parentNode = xmlDocument.FindNodeRecursive(parentNodeCriteria); if (parentNode != null) { var xmlNode = parentNode.FindNodeInChildren(containsCriteria); return(xmlNode != null); } return(false); }
public void RemoveNode(IFindCriteria <XmlNode> parentNodeCriteria, IFindCriteria <XmlNode> removeCriteria) { var parentNode = xmlDocument.FindNodeRecursive(parentNodeCriteria); if (parentNode != null) { var xmlNode = parentNode.FindNodeInChildren(removeCriteria); if (xmlNode != null) { parentNode.RemoveChild(xmlNode); } } }
public void AddNode(BaseManifestNode node, IFindCriteria <XmlNode> parentNodeCriteria) { var parentNode = xmlDocument.FindNodeRecursive(parentNodeCriteria); if (parentNode != null) { parentNode.AddAndroidManifestNode(xmlDocument, node); } else { Debug.LogError("Failed to add new node to AndroidManifest.xml since no specified parent node found"); } }
public static XmlNode FindNodeInChildren(this XmlNode root, IFindCriteria <XmlNode> criteria) { XmlNode currentNode = root.FirstChild; while (currentNode != null) { if (criteria.SatisfiesCriteria(currentNode)) { return(currentNode); } currentNode = currentNode.NextSibling; } return(null); }
public static XmlNode FindNodeRecursive(this XmlNode root, IFindCriteria <XmlNode> criteria) { if (criteria.SatisfiesCriteria(root)) { return(root); } XmlNode currentNode = root.FirstChild; while (currentNode != null) { var node = currentNode.FindNodeRecursive(criteria); if (node != null) { return(node); } currentNode = currentNode.NextSibling; } return(null); }