Прочитайте .xml файл в XmlDocument

1

У меня есть шаблон живой плитки, такой как:

<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?

Теги:
windows-phone-8.1
live-tile

2 ответа

3
Лучший ответ

XDocument.Load может загружаться из файла. Он поддерживается в Windows Phone 8.1, согласно MSDN:

Поддерживается в: Windows Phone 8.1, Windows Phone 8, Silverlight 8.1

XDocument.Parse загружает из строки, содержащей XML.

Что касается преобразования из XDocument в XmlDocument, вы можете использовать ответ @Muhammad. Если вы решите его реализовать, рассмотрите потенциальную проблему с большими XML файлами (прочитайте мой комментарий под ним).

  • 0
    Ну, я буду! Я инициализировал XDocument, затем пытался загрузить экземпляр. Спасибо! XDocument xDoc = XDocument.Load ("имя файла");
  • 0
    к сожалению, я только что узнал, что мне нужен XmlDocument. Интересно, есть ли способ конвертировать ...
Показать ещё 10 комментариев
1

Вот как вы можете это сделать в XML-документе.

        XmlDocument xmldoc = new XmlDocument();
        xmldoc.LoadXml(XDocument.Load("Assets/test.xml").ToString());
  • 1
    Хотя это может выглядеть как хорошее решение, следующий поток предполагает, что могут возникнуть проблемы с производительностью из-за преобразования строк (туда и обратно). Это должно, однако, хорошо работать для небольших файлов XML, если это то, что вам нужно. Для получения дополнительной информации, проверьте комментарий под этим ответом. stackoverflow.com/a/9376479/897326
  • 0
    Неолиск прав. Но любой, кто использует это для живых плиток, не должен запускать этот код более одного раза за сеанс.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню