示例#1
0
        private GpxPerson ReadGpxPerson()
        {
            GpxPerson person = new GpxPerson();

            if (reader.IsEmptyElement)
            {
                return(person);
            }

            string elementName = reader.Name;

            while (reader.Read())
            {
                switch (reader.NodeType)
                {
                case XmlNodeType.Element:

                    switch (reader.Name)
                    {
                    case GpxSymbol.Name:
                        person.Name = reader.ReadElementContentAsString();
                        break;

                    case "email":
                        person.Email = ReadGpxEmail();
                        break;

                    case "link":
                        person.Link = ReadGpxLink();
                        break;

                    default:
                        reader.SkipElement();
                        break;
                    }

                    break;

                case XmlNodeType.EndElement:
                    if (reader.Name != elementName)
                    {
                        throw new FormatException(reader.Name);
                    }
                    return(person);
                }
            }

            throw new FormatException(elementName);
        }
示例#2
0
        private void WritePerson(string elementName, GpxPerson person)
        {
            Writer_.WriteStartElement(elementName);

            if (person.Name != null)
            {
                Writer_.WriteElementString("name", person.Name);
            }
            if (person.Email != null)
            {
                WriteEmail("email", person.Email);
            }

            Writer_.WriteEndElement();
        }
示例#3
0
        private GpxPerson ReadGpxPerson(XmlReader reader)
        {
            GpxPerson person = new GpxPerson();
            if (reader.IsEmptyElement) return person;

            string elementName = reader.Name;

            while (reader.Read())
            {
                switch (reader.NodeType)
                {
                    case XmlNodeType.Element:

                        switch (reader.Name)
                        {
                            case "name":
                                person.Name = ReadContentAsString(reader);
                                break;
                            case "email":
                                person.Email = ReadGpxEmail(reader);
                                break;
                            case "link":
                                person.Link = ReadGpxLink(reader);
                                break;
                            default:
                                throw new FormatException(reader.Name);
                        }

                        break;

                    case XmlNodeType.EndElement:
                        if (reader.Name != elementName) throw new FormatException(reader.Name);
                        return person;
                }
            }

            throw new FormatException(elementName);
        }
示例#4
0
        private void WritePerson(string elementName, GpxPerson person)
        {
            Writer_.WriteStartElement(elementName);

            if (!string.IsNullOrWhiteSpace(person.Name)) Writer_.WriteElementString("name", person.Name);
            if (person.Email != null) WriteEmail("email", person.Email);

            Writer_.WriteEndElement();
        }