【问题标题】:XMLReader returning "\n " instead of valueXMLReader 返回“\n”而不是值
【发布时间】:2013-01-09 23:25:43
【问题描述】:

我遇到了一个奇怪的问题,我真的找不到原因。它只是突然停止工作,我不知道是什么触发了它。

我在 C# 中使用 XMLReader 来读取 xml 文件。我正在像这样从 xml 文件中读取值:

if(subReader2.MoveToAttribute("X"))
    float.TryParse(reader.Value, NumberStyles.Any
           , CultureInfo.InvariantCulture, out pt.point.X);

xml 包含这样的标签:

<Point X="0" Y="0" Easing="Linear" EaseIn="True" EaseOut="True" />

当它读取属性XY 时,reader.Value 出于某种原因返回\n。它以前有效,但现在有什么东西阻止了它。属性,EasingEaseInEaseOut 被读取得很好。所以我不知道为什么XY 会失败。

The full xml file

The complete parsing function

有什么想法吗?

【问题讨论】:

  • 您可以尝试将 XmlReader.Settings.IgnoreWhiteSpace 设置为 'true' see MSDN
  • pt.point 的数据类型是什么?你能补充一下吗?

标签: c# xml xmlreader


【解决方案1】:

如果你有read.Value,那不应该是subReader2.Value吗?

【讨论】:

  • 啊,是的。我想这就是你对自己的代码视而不见的结果。感谢您的帮助,对于给您带来的不便,我们深表歉意!
【解决方案2】:

这里的问题是您将subReader2 指向X 属性,然后从reader 中获取一个值。您是否有理由为每个循环使用单独的阅读器?

【讨论】:

  • XMLReader 很烂 /hide 感谢您的回答 ^^ 一直盯着代码太久了。
  • 如果你不喜欢它,那你为什么要使用它?
猜你喜欢
  • 2010-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-25
  • 1970-01-01
  • 2013-02-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多