diff options
Diffstat (limited to 'MediaBrowser.Dlna/PlayTo/Device.cs')
| -rw-r--r-- | MediaBrowser.Dlna/PlayTo/Device.cs | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/MediaBrowser.Dlna/PlayTo/Device.cs b/MediaBrowser.Dlna/PlayTo/Device.cs index c41aa73a9..222a52736 100644 --- a/MediaBrowser.Dlna/PlayTo/Device.cs +++ b/MediaBrowser.Dlna/PlayTo/Device.cs @@ -635,15 +635,25 @@ namespace MediaBrowser.Dlna.PlayTo } XElement uPnpResponse; - + + // Handle different variations sent back by devices try { uPnpResponse = XElement.Parse(trackString); } - catch (Exception ex) + catch (Exception) { - _logger.ErrorException("Unable to parse xml {0}", ex, trackString); - return new Tuple<bool, uBaseObject>(true, null); + // first try to add a root node with a dlna namesapce + try + { + uPnpResponse = XElement.Parse("<data xmlns:dlna=\"urn:schemas-dlna-org:device-1-0\">" + trackString + "</data>"); + uPnpResponse = uPnpResponse.Descendants().First(); + } + catch (Exception ex) + { + _logger.ErrorException("Unable to parse xml {0}", ex, trackString); + return new Tuple<bool, uBaseObject>(true, null); + } } var e = uPnpResponse.Element(uPnpNamespaces.items); |
