【问题标题】:Error when reading XML读取 XML 时出错
【发布时间】:2015-04-11 15:45:29
【问题描述】:

我目前正在编写一个 XML 写入器/读取器。我将它写入 xml 文件,现在我正在尝试从中读取。但是,当我这样做时,会引发以下错误,我不知道为什么:

'>' is an unexpected token. The expected token is '='. Line 6, position 16. XML reader c#

请问有人可以帮我解释一下吗?

XML 文件:

    <?xml version="1.0" encoding="utf-8" standalone="yes"?>
<assignments>
  <assignment>
    <ModuleTitle>Internet Programming</ModuleTitle>
    <AssignmentTitle>Assignment 01</AssignmentTitle>
    <Date Given>11/02/2015</Date Given>
    <Date Due>20/02/2015</Date Due>
  </assignment>
</assignments>

更新:

问题是我的一些标签名称中有空格,这导致了错误。

【问题讨论】:

  • “当我这样做时会抛出上述错误”你能显示导致错误的代码吗?
  • 去掉标签上的空格,而不是Date Given使用DaveGiven
  • 啊,谢谢 Felipe,问题是标签名称中的空格。 +1 谢谢!
  • 您只是通过字符串连接编写 XML 吗?如果是这样,我将使用 XML API,这样您就无法首先创建上述内容(加上编码和转义将是正确的)

标签: c# xml


【解决方案1】:

您有无效的空格,以下将起作用:

XElement config = XElement.Parse (
@"<?xml version='1.0' encoding='utf-8' standalone='yes'?>
<assignments>
  <assignment>
    <ModuleTitle>Internet Programming</ModuleTitle>
    <AssignmentTitle>Assignment 01</AssignmentTitle>
    <DateGiven>11/02/2015</DateGiven>
    <DateDue>20/02/2015</DateDue>
  </assignment>
</assignments>");

请注意DateGivenDateDue不带空格。

空格错误原因如下图:

【讨论】:

  • @CallumHolden 没问题。 :)
【解决方案2】:

&lt;Date Given&gt; 不是有效的 XML 语法。 Given 应该是一个有值的属性,所以它应该看起来像这样:&lt;Date Given="true"&gt;

编辑以便将来有用:正如@James 提到的,它只是标签名称中的一个空格,这在 XML 中也是无效的。

【讨论】:

  • &lt;DateGiven&gt; 似乎更有可能
  • 您好,感谢您的回复。问题是我在一些标签名称中有空格。还是谢谢!
猜你喜欢
  • 1970-01-01
  • 2012-09-12
  • 1970-01-01
  • 2019-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-12
  • 2011-08-15
相关资源
最近更新 更多