/// <summary> /// Writes XML to an xml writer to ensure proper formatting /// </summary> public virtual void WriteXml(XmlWriter wtr) { if (TagName == TEXT) { if (OriginalTag.Trim().Length > 0)//non-whitespace? { WriteText(wtr, OriginalTag); } return; } if (TagName == CDATA) { wtr.WriteCData(Value); return; } if (TagName == COMMENT) { wtr.WriteComment(OriginalTag.Substring(4, OriginalTag.Length - 7)); return; } if (IsSpecialTag) { wtr.WriteRaw(OriginalTag); return; } wtr.WriteStartElement(NamespaceOrNull, LocalName, Attributes.ContainsKey("xmlns") ? Attributes["xmlns"] : FindPrefixUri(NamespaceOrNull)); foreach (XmlLightAttribute kv in Attributes.ToArray()) { if (kv.Name == "xmlns") { } else if (kv.Namespace == "xmlns") { wtr.WriteAttributeString(kv.Namespace, kv.LocalName, null, kv.Value); } else { wtr.WriteAttributeString(kv.NamespaceOrNull, kv.LocalName, FindPrefixUri(kv.NamespaceOrNull), HttpUtility.HtmlDecode(kv.Value)); } } foreach (XmlLightElement e in Children) { e.WriteXml(wtr); } if (IsEmpty && Children.Count == 0) { wtr.WriteEndElement(); } else { wtr.WriteFullEndElement(); } }
public void Edit_WebPageTags(string PageIndexID, string NewTags, string OriginalTags) { string [] _newTags = NewTags.Replace(" ", "").Split(','); string [] _originalTags = OriginalTags.Replace(" ", "").Split(','); // Remove unused Tags List <PageTag> DeleteTags = new List <PageTag>(); foreach (string OriginalTag in _originalTags) { bool found = false; foreach (string NewTag in _newTags) { if (OriginalTag.Equals(NewTag, StringComparison.InvariantCultureIgnoreCase)) { found = true; break; } } if (!found) { DeleteTags.Add(Get_PageTag_ByTagName(OriginalTag)); } } foreach (PageTag DeleteTag in DeleteTags) { PageTag_Mapping myPageTag_Mapping = Get_PageTag_Mapping(PageIndexID, DeleteTag.PageTageID); Remove_PageTag_Mapping(myPageTag_Mapping.PageTag_MappingID); Delete_PageTags(DeleteTag, "07EB9C71-8751-4D42-AE97-CE4C8D213A12"); } // Add new Tags List <string> AddTags = new List <string>(); foreach (string NewTag in _newTags) { bool found = false; foreach (string OriginalTag in _originalTags) { if (NewTag.Equals(OriginalTag, StringComparison.InvariantCultureIgnoreCase)) { found = true; break; } } if (!found) { AddTags.Add(NewTag); } } foreach (string AddTag in AddTags) { string PageTagID = Add_PageTags(AddTag, "07EB9C71-8751-4D42-AE97-CE4C8D213A12"); if (PageTagID != null) { e2Data[] UpdateData = { new e2Data("PageIndexID", PageIndexID), new e2Data("PageTagID", PageTagID), new e2Data("IsFeatured", false.ToString()) }; Add_PageTag_Mapping(UpdateData); } } }