Parsing .plist Files to plain XML C#

c#, plist

Solution

It looks like that Apple Safari history.plist is binary plist. I've found a great project:

https://github.com/animetrics/PlistCS

From the readme:

This is a C# Property List (plist) serialization library (MIT license). It supports both XML and binary versions of the plist format.

Problem

I'm trying to read my Apple Safari history with c#, which is stored in a plist file, however I always get an error and I'm not sure what the correct way is to do it. The code I tried to execute is this: ``` XmlDocument xmd = new XmlDocument(); xmd.LoadXml(@"C:\Users\Oran\AppData\Roaming\AppleComputer\Safari\History.plist"); ``` and I always get the following error: `"Data at the root level is invalid. Line 1, position 1."` Does anyone know whats wrong with this code and recommend what is the best way to read plist files?

Original source