|
@@ -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))
|