帮助解析XML文件 [英] Help Parsing XML File
问题描述
您好我生成了这个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 withxmlIDS.Substring()
ThexmlIDS.IndexOf(Environment.NewLine)
failed, so it returned -1 which is an invalidstartIndex
parameter value forSubstring
.
Are you sure that the representation of the newline in thexmlIDS
string is the same asEnvironment.NewLine
?
And, are you sure that there actually IS a newline inxmlIDS
?
这篇关于帮助解析XML文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!