【发布时间】:2013-08-25 06:37:41
【问题描述】:
我尝试解析的 XML 似乎有问题。
XML 如下所示:
<room>
<property1>3</property1>
<property2>2</property2>
...
<instances>
<instance name="instance1" x="0" y="0" />
<instance name="instance2" x="0" y="0" />
<instances>
</room>
我正在尝试遍历所有 instance 标签,但是 C# 似乎不支持带有关闭快捷方式 (<tag attribute="value" />) 的标签。
这是我的代码:
XmlReader reader = XmlReader.Create("file.xml");
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element && reader.Name == "instances")
{
while (reader.NodeType != XmlNodeType.EndElement)
{
reader.Read();
Logger.Log(reader.Name);
}
}
}
它似乎只迭代一个instance 标签并跳过其余的。我尝试了一些方法,包括 LINQ 和 XDocument,但它似乎具有相同的效果。然后我意识到它可能是,因为 C# 不支持标签关闭快捷方式。这是真的?有没有办法可以启用对关闭快捷方式的支持?我做错了什么吗?
如果 C# 不支持关闭快捷方式,我可以使用一个好的 C# XML 库来支持它吗?
【问题讨论】:
-
应该,但是您的实例没有正确关闭?
-
我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。
-
仅供参考,C# 根本不支持 XML。支持全部是 .NET Framework 的一部分,而不是编程语言的一部分。