public void CreationTest() { var x = new XMLEntity("test"); Assert.AreEqual("test", x.XName); Assert.AreEqual(0, x.Attributes.Count); Assert.AreEqual(0, x.Children.Count); Assert.AreEqual(null, x.Value); // externes setzen x.SetAttribute("test-attr1", "test-attr1-val"); Assert.IsTrue(x.Attributes.Count == 1); Assert.IsTrue(x.Attributes.ContainsKey("test-attr1")); Assert.AreEqual("test-attr1-val", x.Attributes["test-attr1"]); Assert.AreEqual("test-attr1-val", x.GetAttribute <string>("test-attr1")); // internes setzen Assert.AreEqual(null, x.GetAttribute <string>("test-attr2")); Assert.AreEqual(0, x.GetAttribute <int>("test-attr2")); x.Attributes["test-attr2"] = "2"; Assert.AreEqual("2", x.GetAttribute <string>("test-attr2")); Assert.AreEqual(2, x.GetAttribute <int>("test-attr2")); // externes Löschen x.RemoveAttribute("test-attr1"); Assert.AreEqual(null, x.GetAttribute <string>("test-attr1")); Assert.IsFalse(x.Attributes.ContainsKey("test-attr1")); // internes Löschen x.Attributes.Remove("test-attr2"); Assert.AreEqual(0, x.GetAttribute <int>("test-attr2")); // Value x.Value = "testval"; Assert.AreEqual("testval", x.Value); // Children (simple) var x2 = new XMLEntity("c"); x.Children.Add(x2); Assert.AreEqual(1, x.Children.Count); Assert.AreEqual("c", x.Children[0].XName); x.Children.RemoveAt(0); Assert.AreEqual(0, x.Children.Count); }
private void ProcessEntity(XMLEntity node) { if (attrsNames.TryGetValue(node.XName, out var localAttrsNames)) { foreach (var attr in localAttrsNames) { node.RemoveAttribute(attr); } } IEnumerable <string> removeNodeNames = nodeNames[""]; if (nodeNames.TryGetValue(node.XName, out var localNodeNames)) { removeNodeNames = removeNodeNames.Concat(localNodeNames); } node.Children.RemoveAll(x => removeNodeNames.Contains(x.XName)); foreach (var ch in node.Children) { ProcessEntity(ch); } }