コード例 #1
0
        /// <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();
            }
        }
コード例 #2
0
ファイル: PageTagMgr.cs プロジェクト: SnowFox108/Nexus
        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);
                }
            }
        }