【问题标题】:Reading and using an XML file as a database - Windows Phone 7 app读取和使用 XML 文件作为数据库 - Windows Phone 7 应用程序
【发布时间】:2011-10-17 12:04:16
【问题描述】:

我有一个应用程序应该从 xml 文件中读取数据,然后使用该数据。

如何在我的应用程序中导入 xml 文件(代码是什么)以及如何使用该 xml 文件中的数据?

这是我使用的 xml 数据库的示例:

<Data>
  <Animals>
    <A>
      <word>Ant</word>
      <word>Aardwark</word>
    </A>
    <B>
      <word>Bear</word>
      <word>Boa</word>
   </B>
  </Animals>
</Data> 

我也试过了

XDocument loadedData = XDocument.Load("Data.xml"); 

从 xml 文件中读取数据但没有用。

另外,我可以以什么形式使用 xml 数据?换句话说,xml 数据是字符串格式还是“X-Something”格式?

更新:也许 Xml 反序列化对我有用?

提前谢谢你

【问题讨论】:

    标签: c# windows-phone-7 linq-to-xml


    【解决方案1】:

    如果“Data.xml”位于项目的根目录中,请确保将 Build Action 设置为 Content,并且您的代码应该可以工作。

    【讨论】:

      【解决方案2】:

      Linq2XML 是您的朋友,会帮助您做到这一点!请注意,它将是只读的,除非您将其放在 Isolated Storage 中。

      【讨论】:

      • 实际上我已经准备好包含数据的数据库文件,我想从中读取数据。例如,在应用程序的某个地方,我想读取标签“A”下的所有单词
      【解决方案3】:

      如果您已经拥有该文件并且每个应用实例都相同(假设您只需要阅读它),则不需要 IsoStore。只需执行Matt said 即可快速获取内容。我建议将其反序列化为一个单独的类,以便您可以轻松地重用和修改数据。

      现在,如果您想存储数据,您可以稍后轻松地序列化现有类并将其存储在本地。如果您想更深入地研究数据存储,您可以使用 SQL CE,它包含在 Mango 中,允许您操作 SDF 文件(顺便说一下,可以与应用程序实例单独加载)。此外,一个好主意是查看Sterling DB(将使用 IsoStore)。

      【讨论】:

        【解决方案4】:

        使用 System.XML 命名空间,使用以下代码。

        XmlDocument xml = new XmlDocument();
        xml.LoadXml("your string of xml");
        XmlNode xNode = xml.SelectSingleNode("xpath to a single node");
        XmlNodeList xNodeList = xml.SelectNodes("xpath to multiple nodes");
        

        您可以将 xNode 和 xNodeList 视为数组结果集,并使用括号语法(如 xNodeList[0])查看它们的内容。

        【讨论】:

        • 我无法在 System.Xml 命名空间中处理 XmlDocument 类,我可以改用 System.Xml.Linq 命名空间和 XDocument 类吗?
        • 有趣,您是否在 Visual Studio 项目中添加了对 System.XML 的引用? (右键单击您的 References 文件夹 -> 添加引用 -> .NET 选项卡 -> System.XML),然后在代码文件的顶部添加命名空间(使用 System.XML)。是的,您也可以使用 XDocument,它们都可以满足您的目的(XDocument 是最新的方法)。
        • 这适用于 Windows Phone 7,xPath 在平台上支持。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-08-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多