示例#1
0
 public static IXmlElementSyntax InsertChild(this IXmlElementSyntax parent, IXmlElementSyntax child, int index)
 {
     if (index == -1)
     {
         return(AddChild(parent, child));
     }
     return(parent.WithContent(parent.Content.Insert(index, child.AsNode)));
 }
 internal static string GetParentName(this IXmlElementSyntax xmlElementSyntax)
 {
     if (xmlElementSyntax.Parent == null)
     {
         return(null);
     }
     return(xmlElementSyntax.Parent.NameNode.ToFullString());
 }
示例#3
0
 /// <summary>
 /// Returns the text content of a element node
 /// </summary>
 /// <remarks>
 /// In addition to the straightforward case
 /// of an element containing simple text tokens, this
 /// method also check for embedded CDATA sections
 /// </remarks>
 public static string GetContentValue(this IXmlElementSyntax element)
 {
     if (element.Content.Count == 1 && element.Content.First() is XmlCDataSectionSyntax cdata)
     {
         return(cdata.TextTokens.ToFullString());
     }
     return(element.AsElement.Value);
 }
示例#4
0
        /// <summary>
        /// Return a new <see cref="IXmlElementSyntax"/> instance with
        /// the supplied string prefix.
        /// </summary>
        public static IXmlElementSyntax WithPrefixName(this IXmlElementSyntax element, string prefixName)
        {
            var existingName   = element.NameNode;
            var existingPrefix = existingName.PrefixNode;
            var newName        = SyntaxFactory.XmlNameToken(prefixName, null, null);

            return(element.WithName(existingName.WithPrefix(existingPrefix.WithName(newName))));
        }
示例#5
0
 public static IXmlElementSyntax RemoveChild(this IXmlElementSyntax parent, IXmlElementSyntax child)
 {
     return(parent.WithContent(parent.Content.Remove(child.AsNode)));
 }
示例#6
0
 public static IXmlElementSyntax AddAttribute(this IXmlElementSyntax self, XmlAttributeSyntax attribute)
 {
     return(self.WithAttributes(self.AttributesNode.Add(attribute)));
 }
示例#7
0
 public static IXmlElementSyntax AddAttributes(this IXmlElementSyntax self, IEnumerable <XmlAttributeSyntax> attributes)
 {
     return(self.WithAttributes(self.AttributesNode.AddRange(attributes)));
 }
示例#8
0
 public static IXmlElementSyntax AddAttributes(this IXmlElementSyntax self, params XmlAttributeSyntax[] attributes)
 {
     return(self.WithAttributes(self.AttributesNode.AddRange(attributes)));
 }
示例#9
0
 public static IEnumerable <IXmlElementSyntax> Descendants(this IXmlElementSyntax element)
 {
     return(element.AsNode.Descendants());
 }
示例#10
0
 public static IEnumerable <IXmlElementSyntax> Ancestors(this IXmlElementSyntax element)
 {
     return(element.AsNode.Ancestors());
 }
 internal static bool HasParent(this IXmlElementSyntax xmlElementSyntax)
 {
     return(xmlElementSyntax.Parent != null);
 }
 internal static bool IsLastElement(this IXmlElementSyntax xmlElementSyntax)
 {
     return(xmlElementSyntax.Elements.Count() == 0);
 }
 internal static IEnumerable <string> GetElementsName(this IXmlElementSyntax xmlElementSyntax)
 {
     return(xmlElementSyntax.Parent.Elements.Select(x => x.NameNode.FullName));
 }
 internal static string GetContent(this IXmlElementSyntax xmlElementSyntax)
 {
     return(xmlElementSyntax.Content.ToFullString());
 }
 internal static string GetName(this IXmlElementSyntax xmlElementSyntax)
 {
     return(xmlElementSyntax.NameNode.ToFullString());
 }