Beispiel #1
0
        private void GenerateReadableString(XmlLiteElement objElement, List <string> objStringParts, string strRootValue)
        {
            string strEntryName = string.Empty;

            if (strRootValue.Length > 0)
            {
                strEntryName = string.Format("{0}.{1}", strRootValue, objElement.Name);
            }
            else
            {
                strEntryName = objElement.Name;
            }

            if (objElement.Value.Length > 0)
            {
                strEntryName = string.Format("{0} = {1}", strEntryName, objElement.Value);
                objStringParts.Add(strEntryName);
            }
            else
            {
                if ((objStringParts.Count > 0) && (objStringParts[objStringParts.Count - 1] != string.Empty))
                {
                    objStringParts.Add(string.Empty);
                }
                foreach (XmlLiteElement objChildElement in objElement.Elements.ToArray())
                {
                    GenerateReadableString(objChildElement, objStringParts, strEntryName);
                }
            }
        }
Beispiel #2
0
        public XmlLiteDocument(XmlLiteElement objRootElement)
        {
            if (objRootElement == null)
            {
                throw new ArgumentNullException("objRootElement", "The root element cannot be null");
            }

            _objRootElement = objRootElement;
        }
Beispiel #3
0
        public static string ToXml(XmlLiteElement objXmlLiteElement)
        {
            if (objXmlLiteElement == null)
            {
                throw new ArgumentNullException("objXmlLiteElement", "A valid non-null XmlLiteElement is required.");
            }

            XmlLiteDocument objXmlLiteDocument = new XmlLiteDocument(objXmlLiteElement);

            return(objXmlLiteDocument.ExportToXml());
        }
        public void Remove(XmlLiteElement objElement)
        {
            if (objElement == null)
            {
                throw new ArgumentNullException("objElement", "The element cannot be null.");
            }

            string strKey = objElement.Name;

            if (Elements.ContainsKey(strKey) == true)
            {
                List <XmlLiteElement> objIndexedElements = Elements[strKey];
                objIndexedElements.Remove(objElement);
            }
        }
        public XmlLiteElement[] GetElements(string strName)
        {
            if (strName == null)
            {
                throw new ArgumentNullException("strName", "The name cannot be null.");
            }

            XmlLiteElement[] objElements = new XmlLiteElement[0];
            if (Elements.ContainsKey(strName) == true)
            {
                List <XmlLiteElement> objIndexedElements = Elements[strName];
                objElements = objIndexedElements.ToArray();
            }

            return(objElements);
        }
        public void Add(XmlLiteElement objElement)
        {
            if (objElement == null)
            {
                throw new ArgumentNullException("objElement", "The element cannot be null.");
            }

            string strKey = objElement.Name;
            List <XmlLiteElement> objIndexedElements = null;

            if (_objIndexedElements.TryGetValue(strKey, out objIndexedElements) == false)
            {
                objIndexedElements = new List <XmlLiteElement>();
                _objIndexedElements.Add(strKey, objIndexedElements);
            }

            objIndexedElements.Add(objElement);
        }
        public XmlLiteElement this[string strName]
        {
            get
            {
                if (strName == null)
                {
                    throw new ArgumentNullException("strName", "The name cannot be null.");
                }

                XmlLiteElement objElement = null;
                if (Elements.ContainsKey(strName) == true)
                {
                    objElement = Elements[strName][0];
                }

                return(objElement);
            }
        }
Beispiel #8
0
        private void GenerateXml(XmlLiteElement objElement, TextWriter objTextWriter, int intIndentLevel)
        {
            string strElementName = objElement.Name;
            string strIndentLevel = new string('\t', intIndentLevel);

            objTextWriter.Write("{0}<{1}", strIndentLevel, strElementName);
            foreach (XmlLiteAttribute objAttribute in objElement.Attributes.ToArray())
            {
                objTextWriter.Write(" {0}=\"{1}\"", objAttribute.Name, objAttribute.Value);
            }

            bool blnIsEmpty = ((objElement.Value.Length == 0) && (objElement.Elements.Count == 0));

            if (blnIsEmpty == false)
            {
                objTextWriter.Write(">");
                if (objElement.Value.Length > 0)
                {
                    objTextWriter.Write(SecurityElement.Escape(objElement.Value));
                }

                if (objElement.Elements.Count > 0)
                {
                    objTextWriter.WriteLine();
                    intIndentLevel += 1;
                    foreach (XmlLiteElement objChildElement in objElement.Elements.ToArray())
                    {
                        GenerateXml(objChildElement, objTextWriter, intIndentLevel);
                    }
                    intIndentLevel -= 1;
                    objTextWriter.Write(new string('\t', intIndentLevel));
                }

                objTextWriter.WriteLine("</{0}>", strElementName);
            }
            else
            {
                objTextWriter.WriteLine("/>");
            }
        }
        public XmlLiteElement GetElement(string strName)
        {
            if (strName == null)
            {
                throw new ArgumentNullException("strName", "The name cannot be null.");
            }

            XmlLiteElement objElement = null;

            if (Elements.ContainsKey(strName) == true)
            {
                // Return the first element.
                //
                List <XmlLiteElement> objIndexedElements = Elements[strName];
                if (objIndexedElements.Count > 0)
                {
                    objElement = objIndexedElements[0];
                }
            }

            return(objElement);
        }
        public void Add(string strName, string strValue)
        {
            XmlLiteElement objElement = new XmlLiteElement(strName, strValue);

            Add(objElement);
        }
Beispiel #11
0
        public static XmlLiteDocument LoadFromReader(XmlReader objXmlReader)
        {
            if (objXmlReader == null)
            {
                throw new ArgumentNullException("objXmlReader", "The xml reader must represent a valid instance.");
            }

            int                    intDepth          = 0;
            XmlLiteElement         objRootElement    = null;
            XmlLiteElement         objCurrentElement = null;
            Stack <XmlLiteElement> objElements       = new Stack <XmlLiteElement>();

            while (objXmlReader.EOF == false)
            {
                objXmlReader.Read();
                switch (objXmlReader.NodeType)
                {
                case XmlNodeType.Element:

                    intDepth          = objXmlReader.Depth;
                    objCurrentElement = new XmlLiteElement(objXmlReader.LocalName);
                    if (objRootElement == null)
                    {
                        objRootElement = objCurrentElement;
                        objElements.Push(objCurrentElement);
                    }
                    else
                    {
                        XmlLiteElement objParentElement = objElements.Peek();
                        objParentElement.Elements.Add(objCurrentElement);

                        if (objXmlReader.IsEmptyElement == false)
                        {
                            objElements.Push(objCurrentElement);
                        }
                    }
                    if (objXmlReader.HasAttributes == true)
                    {
                        while (objXmlReader.MoveToNextAttribute() == true)
                        {
                            objCurrentElement.Attributes.Add(objXmlReader.Name, objXmlReader.Value);
                        }
                    }

                    break;

                case XmlNodeType.Attribute:
                    objCurrentElement.Attributes.Add(objXmlReader.Name, objXmlReader.Value);
                    break;

                case XmlNodeType.EndElement:
                    objElements.Pop();
                    break;

                case XmlNodeType.Text:
                case XmlNodeType.CDATA:

                    if (intDepth == objXmlReader.Depth)
                    {
                        XmlLiteElement objParentElement = objElements.Peek();
                        objParentElement.Value = objXmlReader.Value;
                    }
                    else
                    {
                        objCurrentElement.Value = objXmlReader.Value;
                    }
                    break;

                default:
                    break;
                }
            }

            XmlLiteDocument objDocument = new XmlLiteDocument(objRootElement);

            return(objDocument);
        }