rab*_*bin 6 .net c# xml xmlreader
当我使用XmlReader解析XML文件时,我会得到不同的结果,具体取决于XML文件是否格式正确(即使用换行符).
这是我正在使用的代码:
XmlReader reader = new XmlTextReader(xmlfile);
reader.MoveToContent();
while (reader.Read())
{
switch (reader.NodeType)
{
case XmlNodeType.Element:
if (reader.Name == "entry")
{
Console.WriteLine(reader.ReadElementContentAsString());
}
break;
}
}
Run Code Online (Sandbox Code Playgroud)
我一直在使用的XML内容是:
<xport><meta><columns>5</columns><legend><entry>AVERAGE:host:ed402b4d-71e7-4a8d-be29-ab6e54e955c8:memory_total_kib</entry><entry>AVERAGE:host:ed402b4d-71e7-4a8d-be29-ab6e54e955c8:memory_free_kib</entry><entry>AVERAGE:host:ed402b4d-71e7-4a8d-be29-ab6e54e955c8:xapi_memory_usage_kib</entry><entry>AVERAGE:host:ed402b4d-71e7-4a8d-be29-ab6e54e955c8:xapi_free_memory_kib</entry><entry>AVERAGE:host:ed402b4d-71e7-4a8d-be29-ab6e54e955c8:xapi_live_memory_kib</entry></legend></meta></xport>
Run Code Online (Sandbox Code Playgroud)
代码打印出的只有3行,当它真的应该打印5.我想我错过了一些东西,但是对我来说没有意义的是,当我不相同时,相同的代码会在同一个XML文件上产生不同的结果有白色空间.
如果没有空格分隔符,请参阅为什么XmlReader会跳过所有其他元素?
你正在调用[
ReadElementContentAsString],它将消耗元素并将"光标"放在下一个元素之前.然后再次调用Read,将光标移动(例如,移动到元素中的文本节点).
修改循环(几乎与其他问题完全相同):
while (!reader.EOF)
{
if (reader.NodeType == XmlNodeType.Element && reader.Name == "entry")
{
Console.WriteLine(reader.ReadElementContentAsString());
}
else
{
reader.Read();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2802 次 |
| 最近记录: |