2012-02-24 84 views
4

我在C#ASP.NET中解析XML文檔。有沒有一種方法/功能,我不知道要獲得標籤「課程」的所有元素?抓取特定類型的所有XML元素:即使嵌套元素

的XML的格式是像這樣:

<a> 
    <g1> 
    <course></course> 
    <g9> 
     <course></course> 
     ... more course elements 
    </g9> 
    <course></course> 
    <g2> 
     <g3> 
     <course></course> 
     ... 
     </g3> 
    </g2> 
    </g1> 
</a> 

當我做下面的代碼我回來沒有「當然」的元素,有一個簡單的功能,可以搶在一氣呵成所有這些元素?

XmlDocument xdoc = new XmlDocument(); 
xdoc.Load("http://kjkjkj.com"); 
XmlNodeList list = xdoc.DocumentElement.SelectNodes("course"); 

// if I debug: list.count = 0 but if I look at xdoc.DocumentElement.outerXml 
// its the correct XML so I did parse the file & get XML contents. 

// Is there any C# equivalent of document.getElementsByTagName("course"); ??? 
+0

請不要用「C#」等標題加前綴。這就是標籤的用途。 – 2012-02-24 03:56:39

回答

7

你接近:

XmlNodeList list = xdoc.DocumentElement.SelectNodes("//course"); 

//,前綴將抓住所有命名course,無論身在何處,他們在文檔中的節點。

作爲一種替代方案,您應該考慮使用Linq解析您的XML,將Xml與Linq很好地集成到對象中。同樣的語法也有

var courses = xdoc.Descendants("course");