当前位置: 首页>>代码示例>>C#>>正文


C# XDoc.Remove方法代码示例

本文整理汇总了C#中XDoc.Remove方法的典型用法代码示例。如果您正苦于以下问题:C# XDoc.Remove方法的具体用法?C# XDoc.Remove怎么用?C# XDoc.Remove使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在XDoc的用法示例。


在下文中一共展示了XDoc.Remove方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: ReplaceLinkAttribute

 private void ReplaceLinkAttribute(Dictionary<string, string> pathMap, XDoc doc, string attributeName, bool removeIfNotFound)
 {
     string atAttributeName = "@" + attributeName;
     string link = doc[atAttributeName].AsText;
     if (link != null)
     {
         string dekiUrl = GetMtPathFromConfluencePath(pathMap, link);
         if (dekiUrl != null)
         {
             doc.Attr(attributeName, dekiUrl);
         }
         else
         {
             if (removeIfNotFound && Utils.IsRelativePath(link))
             {
                 doc.Remove();
             }
         }
     }
 }
开发者ID:heran,项目名称:DekiWiki,代码行数:20,代码来源:ACConverter.Parser.cs

示例2: Enforce

        private void Enforce(XDoc doc, bool removeIllegalElements, bool isRoot)
        {
            if(doc.IsEmpty) {
                return;
            }

            // process child elements
            List<XDoc> list = doc.Elements.ToList();
            foreach(XDoc child in list) {
                Enforce(child, removeIllegalElements, false);
            }

            // skip processing of root element
            if(!isRoot) {

                // process element
                Element elementRule;
                if(!Elements.TryGetValue(doc.Name, out elementRule)) {

                    // element is not valid; determine what to do with it
                    if(removeIllegalElements) {

                        // replace it with its contents
                        doc.ReplaceWithNodes(doc);
                    } else {
                        StringBuilder attributes = new StringBuilder();
                        foreach(XmlAttribute attribute in doc.AsXmlNode.Attributes) {
                            attributes.Append(" ");
                            attributes.Append(attribute.OuterXml);
                        }

                        // replace it with text version of itself
                        if(doc.AsXmlNode.ChildNodes.Count == 0) {
                            doc.AddBefore("<" + doc.Name + attributes.ToString() + "/>");
                            doc.Remove();
                        } else {
                            doc.AddBefore("<" + doc.Name + attributes.ToString() + ">");
                            doc.AddAfter("</" + doc.Name + ">");
                            doc.ReplaceWithNodes(doc);
                        }
                    }
                    return;
                } else if(doc.Name != elementRule.Name) {

                    // element has an obsolete name, substitute it
                    doc.Rename(elementRule.Name);
                }

                // process attributes
                List<XmlAttribute> attributeList = new List<XmlAttribute>();
                foreach(XmlAttribute attribute in doc.AsXmlNode.Attributes) {
                    attributeList.Add(attribute);
                }

                // remove unsupported attributes
                if(!elementRule.Attributes.ContainsKey("*")) {
                    foreach(XmlAttribute attribute in attributeList) {
                        Attribute attributeRule;
                        elementRule.Attributes.TryGetValue(attribute.Name, out attributeRule);
                        if((attributeRule == null) && (_wildcardElement != null)) {
                            _wildcardElement.Attributes.TryGetValue(attribute.Name, out attributeRule);
                        }
                        if((attributeRule == null) || ((attributeRule.LegalValues.Length > 0) && (Array.BinarySearch<string>(attributeRule.LegalValues, attribute.Value) < 0))) {
                            doc.RemoveAttr(attribute.Name);
                        }
                    }
                }

                // add default attributes
                foreach(Attribute attributeRule in elementRule.Attributes.Values) {
                    if((attributeRule.DefaultValue != null) && (doc.AsXmlNode.Attributes[attributeRule.Name] == null)) {
                        doc.Attr(attributeRule.Name, attributeRule.DefaultValue);
                    }
                }

                // process empty element
                if(list.Count == 0) {

                    // check if the contents are empty
                    string contents = doc.Contents;
                    if((contents.Trim().Length == 0) && (contents.IndexOf('\u00A0') < 0)) {
                        switch(elementRule.Mode) {
                        case ProcessingMode.PadEmpty:

                            // add '&nbsp;'
                            doc.ReplaceValue("\u00A0");
                            break;
                        case ProcessingMode.RemoveEmpty:
                            doc.Remove();
                            break;
                        }
                    }
                }
            }
        }
开发者ID:sdether,项目名称:DReAM,代码行数:95,代码来源:XDocCop.cs


注:本文中的XDoc.Remove方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。