帮助解析XML文件 [英] Help Parsing XML File

查看:50
本文介绍了帮助解析XML文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好我生成了这个XML文件,用于从解压缩操作中捕获日志记录信息:



Hi I have this XML File which is generated to capture the logging information from a decompression action:

<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" standalone="yes"?>
<NewDataSet>
<Error>
<transactionID>44c6e39a-9b94-4e2d-8419-597677a71dcf</transactionID>
<ErrorMessage />
<InnerException />
<StackTrace />
<Data />
</Error>
<Data>
<TransactionID>44c6e39a-9b94-4e2d-8419-597677a71dcf</TransactionID>
<TransactionDateTimeStamp>2013-10-11T12:45:51.9099748+01:00</TransactionDateTimeStamp>
<FileToCompress />
<DirectoryToCompress>C:\inetpub\CTSNGCFI</DirectoryToCompress>
<CompressedFileName>C:\inetpub\CTSNGCFI\CTSNGCFI.gz</CompressedFileName>
<Action>Read First Directory</Action>
</Data>
<Data>
<TransactionID>44c6e39a-9b94-4e2d-8419-597677a71dcf</TransactionID>
<TransactionDateTimeStamp>2013-10-11T12:45:51.9099748+01:00</TransactionDateTimeStamp>
<FileToCompress>CoverageUpdate.aspx</FileToCompress>
<DirectoryToCompress>C:\inetpub\CTSNGCFI</DirectoryToCompress>
<CompressedFileName>C:\inetpub\CTSNGCFI\CTSNGCFI.gz</CompressedFileName>
<Action>De-Compress</Action>
</Data>
<Data>
<TransactionID>44c6e39a-9b94-4e2d-8419-597677a71dcf</TransactionID>
<TransactionDateTimeStamp>2013-10-11T12:45:51.9099748+01:00</TransactionDateTimeStamp>
<FileToCompress>CustomError.aspx</FileToCompress>
<DirectoryToCompress>C:\inetpub\CTSNGCFI</DirectoryToCompress>
<CompressedFileName>C:\inetpub\CTSNGCFI\CTSNGCFI.gz</CompressedFileName>
<Action>De-Compress</Action>
</Data>
<Data>
<TransactionID>44c6e39a-9b94-4e2d-8419-597677a71dcf</TransactionID>
<TransactionDateTimeStamp>2013-10-11T12:45:51.9099748+01:00</TransactionDateTimeStamp>
<FileToCompress>ExpandedCoverage.aspx</FileToCompress>
<DirectoryToCompress>C:\inetpub\CTSNGCFI</DirectoryToCompress>
<CompressedFileName>C:\inetpub\CTSNGCFI\CTSNGCFI.gz</CompressedFileName>
<Action>De-Compress</Action>
</Data>
<Data>
<TransactionID>44c6e39a-9b94-4e2d-8419-597677a71dcf</TransactionID>
<TransactionDateTimeStamp>2013-10-11T12:45:51.9099748+01:00</TransactionDateTimeStamp>
<FileToCompress>Global.asax</FileToCompress>
<DirectoryToCompress>C:\inetpub\CTSNGCFI</DirectoryToCompress>
<CompressedFileName>C:\inetpub\CTSNGCFI\CTSNGCFI.gz</CompressedFileName>
<Action>De-Compress</Action>
</Data>
<Data>
<TransactionID>44c6e39a-9b94-4e2d-8419-597677a71dcf</TransactionID>
<TransactionDateTimeStamp>2013-10-11T12:45:51.9099748+01:00</TransactionDateTimeStamp>
<FileToCompress>ListControlDispItems.xml</FileToCompress>
<DirectoryToCompress>C:\inetpub\CTSNGCFI</DirectoryToCompress>
<CompressedFileName>C:\inetpub\CTSNGCFI\CTSNGCFI.gz</CompressedFileName>
<Action>De-Compress</Action>
</Data>
<Data>
<TransactionID>44c6e39a-9b94-4e2d-8419-597677a71dcf</TransactionID>
<TransactionDateTimeStamp>2013-10-11T12:45:51.9099748+01:00</TransactionDateTimeStamp>
<FileToCompress>PremiumPolicyCoverageCodes.xml</FileToCompress>
<DirectoryToCompress>C:\inetpub\CTSNGCFI</DirectoryToCompress>
<CompressedFileName>C:\inetpub\CTSNGCFI\CTSNGCFI.gz</CompressedFileName>
<Action>De-Compress</Action>
</Data>
<Data>
<TransactionID>44c6e39a-9b94-4e2d-8419-597677a71dcf</TransactionID>
<TransactionDateTimeStamp>2013-10-11T12:45:51.9099748+01:00</TransactionDateTimeStamp>
<FileToCompress>AICS_Client\wait.html</FileToCompress>
<DirectoryToCompress>C:\inetpub\CTSNGCFI</DirectoryToCompress>
<CompressedFileName>C:\inetpub\CTSNGCFI\CTSNGCFI.gz</CompressedFileName>
<Action>De-Compress</Action>
</Data>
<Transaction>
<TransactionID>44c6e39a-9b94-4e2d-8419-597677a71dcf</TransactionID>
<TransactionDate>2013-10-11T13:45:51.9219748+01:00</TransactionDate>
<CompressedFileName>C:\inetpub\CTSNGCFI\CTSNGCFI.gz</CompressedFileName>
<TransactionSuccessFlag>true</TransactionSuccessFlag>
<TransactionErrors>No Errors</TransactionErrors>
</Transaction>
</NewDataSet>



从上面的XML I我想提取以下信息:



交易日期:2013-10-11T13:37:47.3189748 + 01:00



压缩文件名:C:\ inetpub \ AllstateCTSNGCFI \ AllstateCTSNGCFI.gz



交易成功:true



交易错误:无错误







解压缩文件(< filetocompress>):



CoverageUpdate.aspx



CustomError.aspx



ExpandedCoverage.aspx



Global.asax



bin \ Allstate.CTS.SCDBPC.ProductCatalog.SCs.dll










一个


如果有任何错误,请从错误节点输出内容。





非常感谢任何有助于我的教程的帮助或指示。


From the above XML I'd like to extract the following information:

Transaction Date: 2013-10-11T13:37:47.3189748+01:00

Compressed File Name: C:\inetpub\AllstateCTSNGCFI\AllstateCTSNGCFI.gz

Transaction Success: true

Transaction Errors: No Errors



Decompressed Files(<filetocompress>):

CoverageUpdate.aspx

CustomError.aspx

ExpandedCoverage.aspx

Global.asax

bin\Allstate.CTS.SCDBPC.ProductCatalog.SCs.dll

etc



An

And if there are any errors, output the contents from the Error node.


Any help or pointers to tutorials that will help me would be greatly appreciated.

推荐答案

您可以使用XML序列化和反序列化。



请参阅以下链接,了解如何使用XML序列化和反序列化。



XML序列化和反序列化:第1部分 [ ^ ]
You can use XML Serialization and Deserialization.

See below link to see how to use XML Serialization and Deserialization.

XML Serialization and Deserialization: Part-1[^]


添加注释的代码中的错误表明问题出在 xmlIDS.Substring()

xmlIDS.IndexOf(Environment.NewLine)失败,因此返回-1,这是无效的 startIndex 参数值

确定表示换行符的表示在 xmlIDS 字符串中与相同Environment.NewLine

你是吗? 确定 xmlIDS 中实际上 IS 换行?
The error in your comment-added code indicates that the problem is with xmlIDS.Substring()
The xmlIDS.IndexOf(Environment.NewLine) failed, so it returned -1 which is an invalid startIndex parameter value for Substring.
Are you sure that the representation of the newline in the xmlIDS string is the same as Environment.NewLine?
And, are you sure that there actually IS a newline in xmlIDS?


这篇关于帮助解析XML文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆