2010-07-29 233 views
0

我熟悉如何編寫和閱讀我自己的XML文件,例如,設置,但我需要從一個巨大的XML文件中讀取數據,但我找不到我的出發點。從XML文件讀取特定數據

<span class="mw-headline" id="Kader_der_Saison_2010.2F11.5B51.5D"> 
    Kader der Saison 2010/11 
    <sup id="cite_ref-50" class="reference"> 
     <a href="#cite_note-50">[51]</a> 
    </sup> 
</span> 
</h3> 
<table class="wikitable" width="550px"> 
    <tr bgcolor="#DDDDDD"> 
     <th>Name</th> 
     <th>Trikot</th> 
     <th>Nationalität</th> 
    </tr> 
    <tr bgcolor="#EEEEEE"> 
     <th colspan="3" align="left">Torwart</th> 
    </tr> 
    <tr bgcolor="#FFFFFF"> 
    <td> 
     <a href="/wiki/Manuel_Almunia" title="Manuel Almunia">Manuel Almunia</a> 
    </td> 
    <td align="center">1</td> 
    <td align="center"> 
     <span style="display:none" class="sortkey">Spanien !</span> 
     <a href="/wiki/Datei:Flag_of_Spain.svg" class="image" title="Spanier"> 
      <img alt="Spanier" src="http://upload.wikimedia.org/wikipedia/commons/thumb/9/9a/Flag_of_Spain.svg/20px-Flag_of_Spain.svg.png" width="20" height="13" class="thumbborder" /> 
     </a> 
    </td> 
    </tr> 
- <tr bgcolor="#FFFFFF"> 
- <td> 
    <a href="/wiki/%C5%81ukasz_Fabia%C5%84ski" title="Łukasz Fabiański">Łukasz Fabiański</a> 
    </td> 
    <td align="center">21</td> 
- <td align="center"> 
    <span style="display:none" class="sortkey">Polen !</span> 
- <a href="/wiki/Datei:Flag_of_Poland.svg" class="image" title="Pole"> 
    <img alt="Pole" src="http://upload.wikimedia.org/wikipedia/commons/thumb/1/12/Flag_of_Poland.svg/20px-Flag_of_Poland.svg.png" width="20" height="13" class="thumbborder" /> 
    </a> 
    </td> 
    </tr> 

正如你(也許)可以看到我正嘗試讀取所有團隊成員旁邊的「Kader_der_Saison」從一開始維基百科的名字。 我需要這些元素

<a href="/wiki/Manuel_Almunia" title="Manuel Almunia">Manuel Almunia</a>

的標題或正文中得到名字阿穆尼亞,法比安斯基等

我試過AA夫婦的方式,xmldocument.GetElementById或名稱,XmlReader.NoteTypXmlReader.MoveToNextAttribute,xmldocument.SelectNode(xpath),甚至在文檔上嘗試了一個linq查詢,但我沒有得到名稱的位置。

任何想法如何找到「Kader_der_Saison」位置並閱讀以下<a鏈接文本?

感謝

回答

1

這看起來像HTML,而不是XML。假設這是正確的,請參閱this question

如果它確實是Xml(並且某人選擇了非常差的標籤名稱),請將其加載爲XmlDocument或XPathDocument並使用XPath導航按名稱調出節點。

我不使用XPathDocuments多,但與XmlDocument的代碼可能看起來像:

XmlDocument xDoc = new XmlDocument(); 
xDoc.Load(yourXml) 
var nodes = xDoc.SelectNodes(nodeName); 
+0

你對它的一個html頁面我用SgmlReader解析,因爲我試圖使用節點(正如我在我的問題中提到的,我已經嘗試過xmldocument.SelectNode(xpath))。 – Gpx 2010-07-29 15:54:27

0

C#有一個名爲很酷的類,它實質上是將XML轉換成一個對象。對於真正深入的XML文件來說,這可能會帶來麻煩,因爲您必須爲每個節點創建一個對象,但我認爲這是自切片面包以來最好的事情。

+0

這一次我用,以序列化我自己的設置類,但我應該如何與整個wiki站點使用它呢? – Gpx 2010-07-29 15:46:11