diff options
Diffstat (limited to 'MediaBrowser.LocalMetadata/Parsers')
| -rw-r--r-- | MediaBrowser.LocalMetadata/Parsers/BaseItemXmlParser.cs | 117 | ||||
| -rw-r--r-- | MediaBrowser.LocalMetadata/Parsers/PlaylistXmlParser.cs | 34 |
2 files changed, 125 insertions, 26 deletions
diff --git a/MediaBrowser.LocalMetadata/Parsers/BaseItemXmlParser.cs b/MediaBrowser.LocalMetadata/Parsers/BaseItemXmlParser.cs index 43a078316..d66cdf801 100644 --- a/MediaBrowser.LocalMetadata/Parsers/BaseItemXmlParser.cs +++ b/MediaBrowser.LocalMetadata/Parsers/BaseItemXmlParser.cs @@ -395,18 +395,32 @@ namespace MediaBrowser.LocalMetadata.Parsers case "TagLines": { - using (var subtree = reader.ReadSubtree()) + if (!reader.IsEmptyElement) { - FetchFromTaglinesNode(subtree, item); + using (var subtree = reader.ReadSubtree()) + { + FetchFromTaglinesNode(subtree, item); + } + } + else + { + reader.Read(); } break; } case "Countries": { - using (var subtree = reader.ReadSubtree()) + if (!reader.IsEmptyElement) { - FetchFromCountriesNode(subtree, item); + using (var subtree = reader.ReadSubtree()) + { + FetchFromCountriesNode(subtree, item); + } + } + else + { + reader.Read(); } break; } @@ -592,14 +606,21 @@ namespace MediaBrowser.LocalMetadata.Parsers case "Trailers": { - using (var subtree = reader.ReadSubtree()) + if (!reader.IsEmptyElement) { - var hasTrailers = item as IHasTrailers; - if (hasTrailers != null) + using (var subtree = reader.ReadSubtree()) { - FetchDataFromTrailersNode(subtree, hasTrailers); + var hasTrailers = item as IHasTrailers; + if (hasTrailers != null) + { + FetchDataFromTrailersNode(subtree, hasTrailers); + } } } + else + { + reader.Read(); + } break; } @@ -699,59 +720,101 @@ namespace MediaBrowser.LocalMetadata.Parsers case "Genres": { - using (var subtree = reader.ReadSubtree()) + if (!reader.IsEmptyElement) + { + using (var subtree = reader.ReadSubtree()) + { + FetchFromGenresNode(subtree, item); + } + } + else { - FetchFromGenresNode(subtree, item); + reader.Read(); } break; } case "Tags": { - using (var subtree = reader.ReadSubtree()) + if (!reader.IsEmptyElement) { - FetchFromTagsNode(subtree, item); + using (var subtree = reader.ReadSubtree()) + { + FetchFromTagsNode(subtree, item); + } + } + else + { + reader.Read(); } break; } case "PlotKeywords": { - using (var subtree = reader.ReadSubtree()) + if (!reader.IsEmptyElement) { - FetchFromKeywordsNode(subtree, item); + using (var subtree = reader.ReadSubtree()) + { + FetchFromKeywordsNode(subtree, item); + } + } + else + { + reader.Read(); } break; } case "Persons": { - using (var subtree = reader.ReadSubtree()) + if (!reader.IsEmptyElement) { - FetchDataFromPersonsNode(subtree, itemResult); + using (var subtree = reader.ReadSubtree()) + { + FetchDataFromPersonsNode(subtree, itemResult); + } + } + else + { + reader.Read(); } break; } case "Studios": { - using (var subtree = reader.ReadSubtree()) + if (!reader.IsEmptyElement) { - FetchFromStudiosNode(subtree, item); + using (var subtree = reader.ReadSubtree()) + { + FetchFromStudiosNode(subtree, item); + } + } + else + { + reader.Read(); } break; } case "Shares": { - using (var subtree = reader.ReadSubtree()) + if (!reader.IsEmptyElement) { - var hasShares = item as IHasShares; - if (hasShares != null) + using (var subtree = reader.ReadSubtree()) { - FetchFromSharesNode(subtree, hasShares); + var hasShares = item as IHasShares; + if (hasShares != null) + { + FetchFromSharesNode(subtree, hasShares); + } } } + else + { + reader.Read(); + } break; } @@ -824,6 +887,11 @@ namespace MediaBrowser.LocalMetadata.Parsers { case "Share": { + if (reader.IsEmptyElement) + { + reader.Read(); + continue; + } using (var subtree = reader.ReadSubtree()) { var share = GetShareFromNode(subtree); @@ -1090,6 +1158,11 @@ namespace MediaBrowser.LocalMetadata.Parsers case "Person": case "Actor": { + if (reader.IsEmptyElement) + { + reader.Read(); + continue; + } using (var subtree = reader.ReadSubtree()) { foreach (var person in GetPersonsFromXmlNode(subtree)) diff --git a/MediaBrowser.LocalMetadata/Parsers/PlaylistXmlParser.cs b/MediaBrowser.LocalMetadata/Parsers/PlaylistXmlParser.cs index d4334bf62..695fe2b12 100644 --- a/MediaBrowser.LocalMetadata/Parsers/PlaylistXmlParser.cs +++ b/MediaBrowser.LocalMetadata/Parsers/PlaylistXmlParser.cs @@ -43,17 +43,31 @@ namespace MediaBrowser.LocalMetadata.Parsers case "PlaylistItems": - using (var subReader = reader.ReadSubtree()) + if (!reader.IsEmptyElement) { - FetchFromCollectionItemsNode(subReader, item); + using (var subReader = reader.ReadSubtree()) + { + FetchFromCollectionItemsNode(subReader, item); + } + } + else + { + reader.Read(); } break; case "Shares": - using (var subReader = reader.ReadSubtree()) + if (!reader.IsEmptyElement) + { + using (var subReader = reader.ReadSubtree()) + { + FetchFromSharesNode(subReader, item); + } + } + else { - FetchFromSharesNode(subReader, item); + reader.Read(); } break; @@ -79,6 +93,12 @@ namespace MediaBrowser.LocalMetadata.Parsers { case "PlaylistItem": { + if (reader.IsEmptyElement) + { + reader.Read(); + continue; + } + using (var subReader = reader.ReadSubtree()) { var child = GetLinkedChild(subReader); @@ -123,6 +143,12 @@ namespace MediaBrowser.LocalMetadata.Parsers { case "Share": { + if (reader.IsEmptyElement) + { + reader.Read(); + continue; + } + using (var subReader = reader.ReadSubtree()) { var child = GetShare(subReader); |
