我熟悉编写和阅读我自己的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>
获得Manuel Almunia,ŁukaszFabiański等人的姓名。
我尝试了几种方式,xmldocument.GetElementById
或姓名,XmlReader.NoteTyp
,XmlReader.MoveToNextAttribute
,xmldocument.SelectNode(xpath)
,甚至尝试了对文档的linq查询,但我不知道到达名字的位置。
如何查找“Kader_der_Saison”排名并阅读以下<a
链接文字?
由于
答案 0 :(得分:1)
这看起来像HTML,而不是XML。假设这是正确的,请参阅this question。
如果它确实是Xml(并且有人选择了非常糟糕的标记名称),请将其作为XmlDocument或XPathDocument加载,并使用XPath导航按名称调出节点。
我没有太多使用XPathDocuments,但是使用XmlDocument,您的代码可能类似于:
XmlDocument xDoc = new XmlDocument();
xDoc.Load(yourXml)
var nodes = xDoc.SelectNodes(nodeName);
答案 1 :(得分:0)
C#有一个非常酷的类XmlSerializer,它实际上将XML转换为对象。它可能是一个非常深的XML文件的麻烦,因为你必须为每个节点创建一个对象,但我认为这是切片面包以来最好的事情。