Quellcode durchsuchen

update xml parsing

Luke Pulverenti vor 8 Jahren
Ursprung
Commit
eefab227cc

+ 7 - 2
MediaBrowser.LocalMetadata/Parsers/BaseItemXmlParser.cs

@@ -906,8 +906,10 @@ namespace MediaBrowser.LocalMetadata.Parsers
         private void FetchFromTaglinesNode(XmlReader reader, T item)
         {
             reader.MoveToContent();
+            reader.Read();
 
-            while (reader.Read())
+            // Loop through each element
+            while (!reader.EOF)
             {
                 if (reader.NodeType == XmlNodeType.Element)
                 {
@@ -923,12 +925,15 @@ namespace MediaBrowser.LocalMetadata.Parsers
                                 }
                                 break;
                             }
-
                         default:
                             reader.Skip();
                             break;
                     }
                 }
+                else
+                {
+                    reader.Read();
+                }
             }
         }
 

+ 7 - 1
MediaBrowser.LocalMetadata/Savers/BaseXmlSaver.cs

@@ -718,8 +718,10 @@ namespace MediaBrowser.LocalMetadata.Savers
                             return;
                         }
 
+                        reader.Read();
+
                         // Loop through each element
-                        while (reader.Read())
+                        while (!reader.EOF)
                         {
                             if (reader.NodeType == XmlNodeType.Element)
                             {
@@ -734,6 +736,10 @@ namespace MediaBrowser.LocalMetadata.Savers
                                     reader.Skip();
                                 }
                             }
+                            else
+                            {
+                                reader.Read();
+                            }
                         }
                     }
                 }

+ 30 - 9
MediaBrowser.MediaEncoding/Probing/ProbeResultNormalizer.cs

@@ -200,9 +200,10 @@ namespace MediaBrowser.MediaEncoding.Probing
                     using (var reader = XmlReader.Create(streamReader))
                     {
                         reader.MoveToContent();
+                        reader.Read();
 
                         // Loop through each element
-                        while (reader.Read())
+                        while (!reader.EOF)
                         {
                             if (reader.NodeType == XmlNodeType.Element)
                             {
@@ -219,6 +220,10 @@ namespace MediaBrowser.MediaEncoding.Probing
                                         break;
                                 }
                             }
+                            else
+                            {
+                                reader.Read();
+                            }
                         }
                     }
                 }
@@ -227,13 +232,14 @@ namespace MediaBrowser.MediaEncoding.Probing
 
         private void ReadFromDictNode(XmlReader reader, MediaInfo info)
         {
-            reader.MoveToContent();
-
             string currentKey = null;
             List<NameValuePair> pairs = new List<NameValuePair>();
 
+            reader.MoveToContent();
+            reader.Read();
+
             // Loop through each element
-            while (reader.Read())
+            while (!reader.EOF)
             {
                 if (reader.NodeType == XmlNodeType.Element)
                 {
@@ -272,17 +278,23 @@ namespace MediaBrowser.MediaEncoding.Probing
                             break;
                     }
                 }
+                else
+                {
+                    reader.Read();
+                }
             }
         }
 
         private List<NameValuePair> ReadValueArray(XmlReader reader)
         {
-            reader.MoveToContent();
 
             List<NameValuePair> pairs = new List<NameValuePair>();
 
+            reader.MoveToContent();
+            reader.Read();
+
             // Loop through each element
-            while (reader.Read())
+            while (!reader.EOF)
             {
                 if (reader.NodeType == XmlNodeType.Element)
                 {
@@ -303,6 +315,10 @@ namespace MediaBrowser.MediaEncoding.Probing
                             break;
                     }
                 }
+                else
+                {
+                    reader.Read();
+                }
             }
 
             return pairs;
@@ -360,13 +376,14 @@ namespace MediaBrowser.MediaEncoding.Probing
 
         private NameValuePair GetNameValuePair(XmlReader reader)
         {
-            reader.MoveToContent();
-
             string name = null;
             string value = null;
 
+            reader.MoveToContent();
+            reader.Read();
+
             // Loop through each element
-            while (reader.Read())
+            while (!reader.EOF)
             {
                 if (reader.NodeType == XmlNodeType.Element)
                 {
@@ -383,6 +400,10 @@ namespace MediaBrowser.MediaEncoding.Probing
                             break;
                     }
                 }
+                else
+                {
+                    reader.Read();
+                }
             }
 
             if (string.IsNullOrWhiteSpace(name) ||

+ 4 - 1
MediaBrowser.Providers/Music/MusicBrainzAlbumProvider.cs

@@ -265,6 +265,7 @@ namespace MediaBrowser.Providers.Music
                 var list = new List<ReleaseResult>();
 
                 reader.MoveToContent();
+                reader.Read();
 
                 // Loop through each element
                 while (!reader.EOF)
@@ -302,6 +303,7 @@ namespace MediaBrowser.Providers.Music
                 var list = new List<ReleaseResult>();
 
                 reader.MoveToContent();
+                reader.Read();
 
                 // Loop through each element
                 while (!reader.EOF)
@@ -348,7 +350,6 @@ namespace MediaBrowser.Providers.Music
                 };
 
                 reader.MoveToContent();
-
                 reader.Read();
 
                 // http://stackoverflow.com/questions/2299632/why-does-xmlreader-skip-every-other-element-if-there-is-no-whitespace-separator
@@ -428,6 +429,7 @@ namespace MediaBrowser.Providers.Music
                     using (var reader = XmlReader.Create(oReader, settings))
                     {
                         reader.MoveToContent();
+                        reader.Read();
 
                         // Loop through each element
                         while (!reader.EOF)
@@ -464,6 +466,7 @@ namespace MediaBrowser.Providers.Music
         private string GetFirstReleaseGroupId(XmlReader reader)
         {
             reader.MoveToContent();
+            reader.Read();
 
             // Loop through each element
             while (!reader.EOF)

+ 2 - 0
MediaBrowser.Providers/Music/MusicBrainzArtistProvider.cs

@@ -86,6 +86,7 @@ namespace MediaBrowser.Providers.Music
                 using (var reader = XmlReader.Create(oReader, settings))
                 {
                     reader.MoveToContent();
+                    reader.Read();
 
                     // Loop through each element
                     while (!reader.EOF)
@@ -124,6 +125,7 @@ namespace MediaBrowser.Providers.Music
             var list = new List<RemoteSearchResult>();
 
             reader.MoveToContent();
+            reader.Read();
 
             // Loop through each element
             while (!reader.EOF)

+ 12 - 2
MediaBrowser.Providers/TV/TheTVDB/TvdbPrescanTask.cs

@@ -195,9 +195,10 @@ namespace MediaBrowser.Providers.TV
                 using (var reader = XmlReader.Create(streamReader, settings))
                 {
                     reader.MoveToContent();
+                    reader.Read();
 
                     // Loop through each element
-                    while (reader.Read())
+                    while (!reader.EOF)
                     {
                         if (reader.NodeType == XmlNodeType.Element)
                         {
@@ -212,6 +213,10 @@ namespace MediaBrowser.Providers.TV
                                     break;
                             }
                         }
+                        else
+                        {
+                            reader.Read();
+                        }
                     }
                 }
             }
@@ -266,9 +271,10 @@ namespace MediaBrowser.Providers.TV
                 using (var reader = XmlReader.Create(streamReader, settings))
                 {
                     reader.MoveToContent();
+                    reader.Read();
 
                     // Loop through each element
-                    while (reader.Read())
+                    while (!reader.EOF)
                     {
                         if (reader.NodeType == XmlNodeType.Element)
                         {
@@ -290,6 +296,10 @@ namespace MediaBrowser.Providers.TV
                                     break;
                             }
                         }
+                        else
+                        {
+                            reader.Read();
+                        }
                     }
                 }
             }

+ 6 - 1
MediaBrowser.Providers/TV/TheTVDB/TvdbSeriesProvider.cs

@@ -334,9 +334,10 @@ namespace MediaBrowser.Providers.TV
         private string FindSeriesId(XmlReader reader)
         {
             reader.MoveToContent();
+            reader.Read();
 
             // Loop through each element
-            while (reader.Read())
+            while (!reader.EOF)
             {
                 if (reader.NodeType == XmlNodeType.Element)
                 {
@@ -359,6 +360,10 @@ namespace MediaBrowser.Providers.TV
                             break;
                     }
                 }
+                else
+                {
+                    reader.Read();
+                }
             }
 
             return null;

+ 0 - 3
MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj

@@ -71,9 +71,6 @@
     <Reference Include="ServiceStack.Api.Swagger">
       <HintPath>..\ThirdParty\ServiceStack\ServiceStack.Api.Swagger.dll</HintPath>
     </Reference>
-    <Reference Include="ServiceStack.Common">
-      <HintPath>..\ThirdParty\ServiceStack\ServiceStack.Common.dll</HintPath>
-    </Reference>
     <Reference Include="SharpCompress, Version=0.10.3.0, Culture=neutral, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
       <HintPath>..\ThirdParty\SharpCompress\SharpCompress.dll</HintPath>

+ 7 - 1
MediaBrowser.XbmcMetadata/Savers/BaseNfoSaver.cs

@@ -1057,8 +1057,10 @@ namespace MediaBrowser.XbmcMetadata.Savers
                             return;
                         }
 
+                        reader.Read();
+
                         // Loop through each element
-                        while (reader.Read())
+                        while (!reader.EOF)
                         {
                             if (reader.NodeType == XmlNodeType.Element)
                             {
@@ -1073,6 +1075,10 @@ namespace MediaBrowser.XbmcMetadata.Savers
                                     reader.Skip();
                                 }
                             }
+                            else
+                            {
+                                reader.Read();
+                            }
                         }
                     }
                 }