У меня есть шаблон живой плитки, такой как:
<tile>
<visual version="2">
<binding template="TileSquare150x150Text02" fallback="TileSquareText02">
<text id="1">Text Field 1 (larger text)</text>
<text id="2">Text Field 2</text>
</binding>
</visual>
</tile>
Я могу прочитать его в XmlDocument
следующим образом:
StringBuilder sb = new StringBuilder("<?xml version=\"1.0\" encoding=\"utf-8\" ?><tile>");
sb.Append("<visual version=\"2\"><binding template=\"TileSquare150x150Text04\" fallback=\"TileSquareText04\"><text id=\"1\">Text Field 1</text></binding></visual></tile>");
XmlDocument xmldoc = new XmlDocument();
xmldoc.LoadXml(sb.ToString());
Но мне бы очень хотелось прочитать его прямо из файла, так как это быстро станет очень грязным.
XmlDocument.Load
не поддерживается для Windows Phone 8.1, поэтому я не могу просто загружать имя файла. System.IO.File.ReadAllText(fileName);
также неприемлемо для Windows Phone 8.1. XDocument
, похоже, нет дружественного метода.
Что я могу сделать, чтобы прочитать XML файл в string
чтобы я мог подключить его к XmlDocument для приложения Windows Phone 8.1?
XDocument.Load может загружаться из файла. Он поддерживается в Windows Phone 8.1, согласно MSDN:
Поддерживается в: Windows Phone 8.1, Windows Phone 8, Silverlight 8.1
XDocument.Parse загружает из строки, содержащей XML.
Что касается преобразования из XDocument в XmlDocument, вы можете использовать ответ @Muhammad. Если вы решите его реализовать, рассмотрите потенциальную проблему с большими XML файлами (прочитайте мой комментарий под ним).
Вот как вы можете это сделать в XML-документе.
XmlDocument xmldoc = new XmlDocument();
xmldoc.LoadXml(XDocument.Load("Assets/test.xml").ToString());