我想要像這樣讀取XML。使用Xml創建列表
<?xml version="1.0" encoding="utf-8" ?>
<parent>
<path>
<pathPoints>
<point>
2 0
</point>
<point>
2 1
</point>
3 1
<point>
3 2
</point>
<point>
4 2
</point>
<point>
4 4
</point>
<point>
3 4
</point>
<point>
3 5
</point>
<point>
2 5
</point>
<point>
2 7
</point>
<point>
7 7
</point>
<point>
7 5
</point>
<point>
10 5
</point>
<point>
10 2
<point>
</point>
15 2
</point>
<point>
15 6
</point>
<point>
16 6
</point>
<point>
16 7
</point>
<point>
17 7
</point>
<point>
17 10
</point>
<point>
19 10
</point>
</pathPoints>
</parent>
</path>
而現在我想閱讀:
paths = (from path in doc.Descendants("path")
select new AIPath()
{
waypoints = (from i in path.Descendants("pathPoints")
{
int j = Convert.ToInt32(i.Element("point").Value),
}).ToList();
}
).ToList();
我AIPath包含vector2稱爲航點的列表。
我想知道的是我做錯了什麼。我想在每次改變它正在查看的路徑時創建一個新路徑,這看起來很好。然而我感到困惑的是下一步該做什麼。航點=(從我在path.Descendants(「pathPoints」),我很期待後,我必須做一些事情,但我無能,什麼。
任何幫助,將不勝感激。
。編輯
一個或兩個細節我忘了補充
public class AIPath
{
//public Vector2
public List<Vector2> waypoints { get; set; }
public int linkNumber { get; set; }
public int[] potentialLinks { get; set; }
}
我們不知道你的'AIPath'類型是什麼樣的,這使得它很難提供幫助。另外,你還沒有告訴我們你的* current *代碼是幹什麼的。 (看起來它基本上是一個語法錯誤......) –
此外,當前似乎試圖將'point'元素解析爲* single *整數,當它清楚地包含* two *整數時。你能夠改變XML格式嗎?它看起來會更清潔,如果這兩個值被設置爲「點」元素的屬性... –
@JonSkeet是的,我可以改變格式,我需要得到X和Y.它更多地說明了什麼我以前做過。我已經添加了我的AI路徑類。它目前基本上不起作用,因爲我無法計算出需要添加的內容以告訴xml解析器將所找到的所有路徑點元素添加到AIPath路徑點表中。 – Bushes