示例#1
0
 public void FromJson(JObject obj)
 {
     foreach (var property in obj)
     {
         if (property.Key == "@language")
         {
             Language = property.Value.Value <string>();
             continue;
         }
         if (property.Key == "@base")
         {
             Base = property.Value.Value <string>();
             continue;
         }
         if (property.Key == "@vocab")
         {
             Vocab = property.Value.Value <string>();
             continue;
         }
         if (property.Key == "@version")
         {
             Version = property.Value.Value <string>();
             continue;
         }
         Terms.Add(property.Key, TermDefinition.FromJson(property.Value));
     }
 }
示例#2
0
            public static TermDefinition FromJson(JToken token)
            {
                var result = new TermDefinition();

                if (token is JObject obj)
                {
                    if (obj.TryGetValue("@id", out var idValue))
                    {
                        result.Id = idValue.Value <string>();
                    }
                    if (obj.TryGetValue("@type", out var typeValue))
                    {
                        result.Type = typeValue.Value <string>();
                    }
                    if (obj.TryGetValue("@container", out var containerValue))
                    {
                        result.Container = containerValue.Value <string>();
                    }
                }
                else if (token is JValue value)
                {
                    result.Id = value.Value <string>();
                }
                return(result);
            }
示例#3
0
        private TermDefinition ParseToTermDefinition(HtmlNode defHeaderNode, string url)
        {
            TermDefinition termDefinition = null;

            if (defHeaderNode == null)
            {
                return(termDefinition);
            }

            var word      = WebUtility.HtmlDecode(defHeaderNode.SelectSingleNode("//div[@class = 'def-header']/a[@class = 'word']").InnerText);
            var meaning   = WebUtility.HtmlDecode(defHeaderNode.SelectSingleNode("//div[@class = 'meaning']").InnerText);
            var example   = WebUtility.HtmlDecode(defHeaderNode.SelectSingleNode("//div[@class = 'example']").InnerText);
            var author    = WebUtility.HtmlDecode(defHeaderNode.SelectSingleNode("//div[@class = 'contributor']/a").InnerText);
            var authorUrl = "https://www.urbandictionary.com" + WebUtility.HtmlDecode(defHeaderNode.SelectSingleNode("//div[@class = 'contributor']/a").Attributes["href"].Value);

            termDefinition = new TermDefinition()
            {
                Word = word, Meaning = meaning, Example = example, Author = author, AuthorUrl = authorUrl, SourceUrl = url
            };

            return(termDefinition);
        }