2013-03-04 58 views
1

我的問題如下: 我想解析一個用Tiled Map Editor創建的xml文件,我在其中插入了一個objectlayer(用於碰撞對象)。但不幸的是,瓷磚命名的XML文件「對象組」及其後代「對象」用C#中XDocument的名稱「對象」解析XML節點。

<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); } 

但由於節點「對象」是一個受保護單詞在C#中,它不起作用。 任何提示如何處理這個問題最簡單的方法?

+4

爲什麼不只是選擇另一個變量名? – 2013-03-04 10:08:20

+1

是的 - 只是叫它'obj'或者其他東西 – 2013-03-04 10:11:06

+0

哦,我以爲變量必須與節點具有相同的名稱 – 2013-03-04 14:20:53

回答

3

如果你絕對,絕對使用object爲您的變量名(不推薦),那麼你可以用@符號前綴是:

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

@符號前綴允許標識符你的代碼使用保留字作爲他們的名字。