0

我正在开发一个 C# 和 Android 库项目。我基本上想做的是在 Android 中编写一个库,它将崩溃详细信息发送到我的服务器上。

然后我有一个 C# 控制台应用程序,它在我的服务器上运行并处理 Android 接收到的数据,我想从这些数据中生成一个 XML 文件,以便另一个程序可以读取 XML 文件并提供月度报告。

不过,我一直坚持使用编写和阅读 XML 的最佳方式。

我已经阅读了很多关于它的内容并发现了各种各样的东西,例如XMLWriterorXMLSerializer但我不知道哪个效果最好,我也不完全理解这些是如何实现的。

下面是如何编写 XML 文件的基本设计,这是我手动编写的,以了解我想要实现的目标。

<?xml version="1.0" encoding="utf-8" ?>
<apps>
  <app>
    <MyApp>
      <appID>1</appID>
      <applicationID>0027598641</applicationID>
      <platform>Android</platform>
      <CrashDetails>
        <Exceptions>
          <Exception>
            <CrashID>55</CrashID>
            <ExceptionType>NullPointerException</ExceptionType>
            <FullException>NullPointerException at line 2</FullException>
            <StartDate>01-11-2013 09:52:00</StartDate>
            <EndDate>02-11-2013 14:43:13</EndDate>
            <AppVersionName>6.1.1.6</AppVersionName>
            <stacktrace>NullPointerException at line 2 com.MyCompany.MyApp.MyClass.MyMethod</stacktrace>
            <Severity>Critical</Severity>
            <OccurrenceCount>9</OccurrenceCount>
          </Exception>
          <Exception>
            <CrashID>56</CrashID>
            <ExceptionType>NullPointerException</ExceptionType>
            <FullException>NullPointerException at line 2</FullException>
            <StartDate>01-11-2013 09:52:00</StartDate>
            <EndDate>02-11-2013 14:43:13</EndDate>
            <AppVersionName>6.1.1.6</AppVersionName>
            <stacktrace>NullPointerException at line 2 com.MyCompany.MyApp.MyClass.MyMethod</stacktrace>
            <Severity>Critical</Severity>
            <OccurrenceCount>9</OccurrenceCount>
          </Exception>
        </Exceptions>
      </CrashDetails>
    </MyApp>
    <MyApp1>
      <appID>2</appID>
      <applicationID>4844354</applicationID>
      <platform>Android</platform>
      <CrashDetails>
        <Exceptions>
          <Exception>
            <CrashID>55</CrashID>
            <ExceptionType>NullPointerException</ExceptionType>
            <FullException>NullPointerException at line 2</FullException>
            <StartDate>01-11-2013 09:52:00</StartDate>
            <EndDate>02-11-2013 14:43:13</EndDate>
            <AppVersionName>6.1.1.6</AppVersionName>
            <stacktrace>NullPointerException at line 2 com.MyCompany.MyApp.MyClass.MyMethod</stacktrace>
            <Severity>Critical</Severity>
            <OccurrenceCount>9</OccurrenceCount>
          </Exception>
        </Exceptions>
      </CrashDetails>
    </MyApp1>
  </app>
</apps>

感谢您的任何帮助,您可以提供。

4

2 回答 2

1

我们的团队通常使用 LINQ to XML,它提供了一种非常强大的方式来处理 XML 数据(包括从文件加载 XML、解析 XML 流、创建 XML 文档以及将 XML 写入/保存到文件。)

以下链接很好地概述了 LINQ to XML
http://www.dreamincode.net/forums/topic/218979-linq-to-xml/

此外,您可能会发现以下页面的“XML 部分”部分很有帮助
http://www.codeproject.com/Articles/24376/LINQ-to-XML

问候

于 2013-11-14T22:12:20.090 回答
0

就个人而言,我更喜欢将LINQ to XML用于 C# 中与 XML 相关的任何内容。您可以创建XML 树,然后将这些树持久化/序列化为文件XmlWriter、或其他类型的流。

但是在需要巨大性能的情况下,我更喜欢使用StringBuilder类和字符串连接操作来创建 XML。

于 2013-11-14T22:02:20.477 回答