update xml parsing
This commit is contained in:
parent
7cf0f79f85
commit
8f64a5555b
|
@ -1329,11 +1329,13 @@ namespace MediaBrowser.LocalMetadata.Parsers
|
||||||
|
|
||||||
protected Share GetShare(XmlReader reader)
|
protected Share GetShare(XmlReader reader)
|
||||||
{
|
{
|
||||||
reader.MoveToContent();
|
|
||||||
|
|
||||||
var item = new Share();
|
var item = new Share();
|
||||||
|
|
||||||
while (reader.Read())
|
reader.MoveToContent();
|
||||||
|
reader.Read();
|
||||||
|
|
||||||
|
// Loop through each element
|
||||||
|
while (!reader.EOF)
|
||||||
{
|
{
|
||||||
if (reader.NodeType == XmlNodeType.Element)
|
if (reader.NodeType == XmlNodeType.Element)
|
||||||
{
|
{
|
||||||
|
@ -1350,12 +1352,17 @@ namespace MediaBrowser.LocalMetadata.Parsers
|
||||||
item.CanEdit = string.Equals(reader.ReadElementContentAsString(), "true", StringComparison.OrdinalIgnoreCase);
|
item.CanEdit = string.Equals(reader.ReadElementContentAsString(), "true", StringComparison.OrdinalIgnoreCase);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
reader.Skip();
|
{
|
||||||
break;
|
reader.Skip();
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
reader.Read();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// This is valid
|
// This is valid
|
||||||
|
|
|
@ -31,11 +31,13 @@ namespace MediaBrowser.LocalMetadata.Parsers
|
||||||
|
|
||||||
private void FetchFromCollectionItemsNode(XmlReader reader, MetadataResult<BoxSet> item)
|
private void FetchFromCollectionItemsNode(XmlReader reader, MetadataResult<BoxSet> item)
|
||||||
{
|
{
|
||||||
reader.MoveToContent();
|
|
||||||
|
|
||||||
var list = new List<LinkedChild>();
|
var list = new List<LinkedChild>();
|
||||||
|
|
||||||
while (reader.Read())
|
reader.MoveToContent();
|
||||||
|
reader.Read();
|
||||||
|
|
||||||
|
// Loop through each element
|
||||||
|
while (!reader.EOF)
|
||||||
{
|
{
|
||||||
if (reader.NodeType == XmlNodeType.Element)
|
if (reader.NodeType == XmlNodeType.Element)
|
||||||
{
|
{
|
||||||
|
@ -55,12 +57,17 @@ namespace MediaBrowser.LocalMetadata.Parsers
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
reader.Skip();
|
{
|
||||||
break;
|
reader.Skip();
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
reader.Read();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
item.Item.LinkedChildren = list;
|
item.Item.LinkedChildren = list;
|
||||||
|
|
|
@ -65,11 +65,13 @@ namespace MediaBrowser.LocalMetadata.Parsers
|
||||||
|
|
||||||
private void FetchFromCollectionItemsNode(XmlReader reader, Playlist item)
|
private void FetchFromCollectionItemsNode(XmlReader reader, Playlist item)
|
||||||
{
|
{
|
||||||
reader.MoveToContent();
|
|
||||||
|
|
||||||
var list = new List<LinkedChild>();
|
var list = new List<LinkedChild>();
|
||||||
|
|
||||||
while (reader.Read())
|
reader.MoveToContent();
|
||||||
|
reader.Read();
|
||||||
|
|
||||||
|
// Loop through each element
|
||||||
|
while (!reader.EOF)
|
||||||
{
|
{
|
||||||
if (reader.NodeType == XmlNodeType.Element)
|
if (reader.NodeType == XmlNodeType.Element)
|
||||||
{
|
{
|
||||||
|
@ -89,12 +91,17 @@ namespace MediaBrowser.LocalMetadata.Parsers
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
reader.Skip();
|
{
|
||||||
break;
|
reader.Skip();
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
reader.Read();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
item.LinkedChildren = list;
|
item.LinkedChildren = list;
|
||||||
|
@ -102,11 +109,13 @@ namespace MediaBrowser.LocalMetadata.Parsers
|
||||||
|
|
||||||
private void FetchFromSharesNode(XmlReader reader, Playlist item)
|
private void FetchFromSharesNode(XmlReader reader, Playlist item)
|
||||||
{
|
{
|
||||||
reader.MoveToContent();
|
|
||||||
|
|
||||||
var list = new List<Share>();
|
var list = new List<Share>();
|
||||||
|
|
||||||
while (reader.Read())
|
reader.MoveToContent();
|
||||||
|
reader.Read();
|
||||||
|
|
||||||
|
// Loop through each element
|
||||||
|
while (!reader.EOF)
|
||||||
{
|
{
|
||||||
if (reader.NodeType == XmlNodeType.Element)
|
if (reader.NodeType == XmlNodeType.Element)
|
||||||
{
|
{
|
||||||
|
@ -126,12 +135,17 @@ namespace MediaBrowser.LocalMetadata.Parsers
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
reader.Skip();
|
{
|
||||||
break;
|
reader.Skip();
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
reader.Read();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
item.Shares = list;
|
item.Shares = list;
|
||||||
|
|
|
@ -513,9 +513,10 @@ namespace MediaBrowser.Providers.TV
|
||||||
using (var reader = XmlReader.Create(streamReader, settings))
|
using (var reader = XmlReader.Create(streamReader, settings))
|
||||||
{
|
{
|
||||||
reader.MoveToContent();
|
reader.MoveToContent();
|
||||||
|
reader.Read();
|
||||||
|
|
||||||
// Loop through each element
|
// Loop through each element
|
||||||
while (reader.Read())
|
while (!reader.EOF)
|
||||||
{
|
{
|
||||||
if (reader.NodeType == XmlNodeType.Element)
|
if (reader.NodeType == XmlNodeType.Element)
|
||||||
{
|
{
|
||||||
|
@ -546,12 +547,17 @@ namespace MediaBrowser.Providers.TV
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
reader.Skip();
|
{
|
||||||
break;
|
reader.Skip();
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
reader.Read();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -82,67 +82,73 @@ namespace MediaBrowser.Providers.TV
|
||||||
// Use XmlReader for best performance
|
// Use XmlReader for best performance
|
||||||
using (reader)
|
using (reader)
|
||||||
{
|
{
|
||||||
reader.MoveToContent();
|
reader.MoveToContent();
|
||||||
|
reader.Read();
|
||||||
|
|
||||||
// Loop through each element
|
// Loop through each element
|
||||||
while (reader.Read())
|
while (!reader.EOF)
|
||||||
{
|
{
|
||||||
cancellationToken.ThrowIfCancellationRequested();
|
if (reader.NodeType == XmlNodeType.Element)
|
||||||
|
{
|
||||||
|
cancellationToken.ThrowIfCancellationRequested();
|
||||||
|
|
||||||
if (reader.NodeType == XmlNodeType.Element)
|
switch (reader.Name)
|
||||||
{
|
{
|
||||||
switch (reader.Name)
|
case "thumb_width":
|
||||||
{
|
{
|
||||||
case "thumb_width":
|
var val = reader.ReadElementContentAsString();
|
||||||
{
|
|
||||||
var val = reader.ReadElementContentAsString();
|
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(val))
|
if (!string.IsNullOrWhiteSpace(val))
|
||||||
{
|
{
|
||||||
int rval;
|
int rval;
|
||||||
|
|
||||||
// int.TryParse is local aware, so it can be probamatic, force us culture
|
// int.TryParse is local aware, so it can be probamatic, force us culture
|
||||||
if (int.TryParse(val, NumberStyles.Integer, _usCulture, out rval))
|
if (int.TryParse(val, NumberStyles.Integer, _usCulture, out rval))
|
||||||
{
|
{
|
||||||
width = rval;
|
width = rval;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case "thumb_height":
|
case "thumb_height":
|
||||||
{
|
{
|
||||||
var val = reader.ReadElementContentAsString();
|
var val = reader.ReadElementContentAsString();
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(val))
|
if (!string.IsNullOrWhiteSpace(val))
|
||||||
{
|
{
|
||||||
int rval;
|
int rval;
|
||||||
|
|
||||||
// int.TryParse is local aware, so it can be probamatic, force us culture
|
// int.TryParse is local aware, so it can be probamatic, force us culture
|
||||||
if (int.TryParse(val, NumberStyles.Integer, _usCulture, out rval))
|
if (int.TryParse(val, NumberStyles.Integer, _usCulture, out rval))
|
||||||
{
|
{
|
||||||
height = rval;
|
height = rval;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case "filename":
|
case "filename":
|
||||||
{
|
{
|
||||||
var val = reader.ReadElementContentAsString();
|
var val = reader.ReadElementContentAsString();
|
||||||
if (!string.IsNullOrWhiteSpace(val))
|
if (!string.IsNullOrWhiteSpace(val))
|
||||||
{
|
{
|
||||||
url = TVUtils.BannerUrl + val;
|
url = TVUtils.BannerUrl + val;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
default:
|
||||||
default:
|
{
|
||||||
reader.Skip();
|
reader.Skip();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
reader.Read();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(url))
|
if (string.IsNullOrEmpty(url))
|
||||||
|
|
Loading…
Reference in New Issue
Block a user