コード例 #1
0
ファイル: GpxReader.cs プロジェクト: AgentTy/General
        private GpxLink ReadGpxLink(XmlReader reader)
        {
            GpxLink link = new GpxLink();

            string elementName    = reader.Name;
            bool   isEmptyElement = reader.IsEmptyElement;

            while (reader.MoveToNextAttribute())
            {
                switch (reader.Name)
                {
                case "href":
                    link.Href = new Uri(reader.Value);
                    break;
                }
            }

            if (isEmptyElement)
            {
                return(link);
            }

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

                    switch (reader.Name)
                    {
                    case "text":
                        link.Text = ReadContentAsString(reader);
                        break;

                    case "type":
                        link.MimeType = ReadContentAsString(reader);
                        break;

                    default:
                        throw new FormatException(reader.Name);
                    }

                    break;

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

            throw new FormatException(elementName);
        }
コード例 #2
0
ファイル: GpxWriter.cs プロジェクト: AgentTy/General
 private void WriteLink(string elementName, GpxLink link)
 {
     Writer_.WriteStartElement(elementName);
     Writer_.WriteAttributeString("href", link.Href.ToString());
     if (!IsNullOrWhiteSpace(link.Text))
     {
         Writer_.WriteElementString("text", link.Text);                                 //IsNullOrWhiteSpace
     }
     if (!IsNullOrWhiteSpace(link.MimeType))
     {
         Writer_.WriteElementString("type", link.MimeType);                                     //IsNullOrWhiteSpace
     }
     Writer_.WriteEndElement();
 }