2010-07-29 163 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