コード例 #1
0
ファイル: ExifParser.cs プロジェクト: AerisG222/NExifTool
 IEnumerable<ParseInfo> GetParseInfo(StreamReader reader)
 {
     var doc = XDocument.Load(reader);
     XNamespace nsRdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
     XNamespace nsEt = "http://ns.exiftool.ca/1.0/";
     var tags = new Dictionary<string, ParseInfo>();
     var els = doc.Element(nsRdf + "RDF").Element(nsRdf + "Description");
     
     foreach(var el in els.Elements())
     {
         if(string.Equals(el.Name.LocalName, EXIF_TOOL_TAG_NAME, StringComparison.OrdinalIgnoreCase))
         {
             _exifToolTagCounter++;
         }
         
         var tableName = el.Attribute(nsEt + "table").Value;
         var tagId = el.Attribute(nsEt + "id").Value;
         var val = el.Value;
         var key = TagInfo.GenerateLookupKey(tableName, tagId);
             
         if(!IsNumericSection)
         {
             tags[key] = new ParseInfo {
                 TableName = tableName,
                 TagId = tagId,
                 Value = val
             };
         }
         else
         {
             if(tags.ContainsKey(key))
             {
                 tags[key].NumberValue = val;
             }
             else
             {
                 tags[key] = new ParseInfo {
                     TableName = tableName,
                     TagId = tagId,
                     NumberValue = val
                 };
             }
         }
     }
     
     return tags.Values;
 }
コード例 #2
0
ファイル: ExifParser.cs プロジェクト: AerisG222/NExifTool
 Tag BuildTag(ParseInfo pi)
 {
     var ti = GetTagInfo(pi.TableName, pi.TagId);
     var tag = CreateSpecificTag(ti, pi.NumberValue);
     
     tag.TagInfo = ti;
     tag.Value = pi.Value;
     tag.NumberValue = pi.NumberValue;
     
     return tag;
 }