将.xml文件读入XmlDocument

本文关键字:XmlDocument 文件 xml | 更新日期: 2023-09-27 18:14:56

我有一个动态平铺模板,如:

<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,这样我就可以把它插入Windows Phone 8.1应用程序的XmlDocument ?

将.xml文件读入XmlDocument

XDocument。加载可以从文件加载。根据MSDN, Windows Phone 8.1支持该功能:

  • XDocument。加载方法(字符串)

支持版本:Windows Phone 8.1, Windows Phone 8, Silverlight 8.1

XDocument。解析从包含XML的字符串加载。

关于从XDocument到XmlDocument的转换,你可以使用@Muhammad的答案。如果您决定实现它,请考虑大型XML文件的潜在性能问题(请阅读下面的注释)。

这是如何在xml文档中实现的。

        XmlDocument xmldoc = new XmlDocument();
        xmldoc.LoadXml(XDocument.Load("Assets/test.xml").ToString());