我正在开发一个C#和Android库项目。我基本上要做的是在Android中编写一个库,将我的崩溃详细信息发送到我的服务器上。
然后我有一个C#控制台应用程序在我的服务器上运行并处理Android收到的数据,我想从这个数据生成一个XML文件,这样另一个程序就可以读取XML文件并提供月度报告。
我已经陷入了编写和阅读XML的最佳方式。
我已经阅读了很多相关内容,发现了各种各样的内容,例如XMLWriter
或XMLSerializer
,但我不知道哪种方法效果最好,也不完全了解这些内容是如何实现的。
下面是关于如何编写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>
感谢您提供的任何帮助。
答案 0 :(得分: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
此致
答案 1 :(得分:0)
就个人而言,我更喜欢将LINQ to XML用于C#中与XML相关的任何内容。您可以创建XML Trees,然后persist/serialize those trees创建文件,XmlWriter
或其他类型的流。
但是在需要巨大性能的情况下,我更喜欢使用StringBuilder
类和字符串连接操作来创建XML。