【发布时间】:2012-08-04 01:07:15
【问题描述】:
StringBuilder returnXml = new StringBuilder();
returnXml.Append("DATE TIME,FUNCTION,TOTAL\n");
String Date = "", Function = "", Total = "";
StreamReader xmlStream = getBlobData(logType, serial, blobStorageCredentials);
//string adf = xmlStream.ReadToEnd();
XmlReader xmlReader = XmlReader.Create(xmlStream);
while (xmlReader.Read())
{
switch (xmlReader.Name)
{
case "OperationType":
if (xmlReader.NodeType == XmlNodeType.Element)
Function = xmlReader.ReadElementContentAsString();
break;
case "TotalCounter":
if (xmlReader.NodeType == XmlNodeType.Element)
Total = xmlReader.ReadElementContentAsString();
break;
case "LogDateTime":
if (xmlReader.NodeType == XmlNodeType.Element)
Date = xmlReader.ReadElementContentAsString();
break;
case "Entries":
if (xmlReader.NodeType == XmlNodeType.EndElement)
{
returnXml.Append(Date);
returnXml.Append(",");
returnXml.Append(Function);
returnXml.Append(",");
returnXml.Append(Total);
returnXml.Append("\n");
}
break;
default:
break;
}
}
return returnXml.ToString();
因此,所有这些案例都不会被输入。如果我评论:
//string xmlString = xmlStream.ReadToEnd();
那么调试器中的xmlString就是这个了(看起来是正确的):
为什么 XmlReader 认为所有的节点都是 EndElements?我很挣扎,因为这不是我的代码。交给我了……
【问题讨论】:
-
看不到您的 xml。链接超时。你能在 SO 上发布你的 xml。