在C#中的XDocument中解析名为“object”的XML节点

时间:2013-03-04 10:05:48

标签: c# xml linq-to-xml

我的问题如下: 我想解析用Tiled Map Editor创建的xml文件,其中我插入了一个objectlayer(用于碰撞对象)。但不幸的是,Tiled将xml文件中的节点命名为“objectgroup”及其后代“object”

<objectgroup name="solidObjects" width="100" height="100">
 <object gid="265" x="16" y="35"/>
 <object gid="265" x="66" y="36"/>
</objectgroup>

我正在尝试做类似

的事情
XDocument doc = XDocument.Load("pathtoFile\sourcefile.xml");
List<Rectangle> objectList = new List<Rectangle>();

foreach (var object in doc.Element("objectgroup").Descendants("object"))
{ objectList.Add(objectRectangle); }

但是因为“object”是c#中受保护的单词,所以它不起作用。 如何以最简单的方式处理这个问题的任何提示?

1 个答案:

答案 0 :(得分:3)

如果你绝对的话,肯定 使用object作为你的变量名(不推荐使用),那么你可以在前面添加@符号:

foreach (var @object in doc.Element("objectgroup").Descendants("object")) {
    objectList.Add(@object);
}

@符号前缀允许代码中的标识符使用保留字作为其名称。