aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.LocalMetadata/Parsers/BaseItemXmlParser.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.LocalMetadata/Parsers/BaseItemXmlParser.cs')
-rw-r--r--MediaBrowser.LocalMetadata/Parsers/BaseItemXmlParser.cs117
1 files changed, 95 insertions, 22 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))