如何在c#中从xpath获取文本

时间:2016-03-25 06:34:25

标签: c# xpath

我想显示来自我的xml文件的数据和
这是我的xml文件



<table>
  <tr class="even">
	<td class="ltid">1</td>
	<td class="ltn">لستر سیتی</td>
	<td class="ltg">31</td>
	<td class="ltw">19</td>
	<td class="ltd">9</td>
	<td class="ltl">3</td>
	<td class="ltgf">54</td>
    <td class="ltga">31</td>
    <td class="ltgd" dir="ltr">+23</td>
    <td class="ltp">66</td>
  </tr>
  <tr>
    <td class="ltid">2</td>
    <td class="ltn">تاتنهام</td>
    <td class="ltg">31</td>
    <td class="ltw">17</td>
    <td class="ltd">10</td>
    <td class="ltl">4</td>
    <td class="ltgf">56</td>
    <td class="ltga">24</td>
    <td class="ltgd" dir="ltr">+32</td>
    <td class="ltp">61</td>
  </tr>
  <tr>
    <td class="ltid">3</td>
    <td class="ltn">آرسنال</td>
    <td class="ltg">30</td>
    <td class="ltw">16</td>
    <td class="ltd">7</td>
    <td class="ltl">7</td>
    <td class="ltgf">48</td>
    <td class="ltga">30</td>
    <td class="ltgd" dir="ltr">+18</td>
    <td class="ltp">55</td>
  </tr>
</table>
&#13;
&#13;
&#13;

我希望得到第三支球队  我想得到'<td class="ltid">3</td>' 这是我试过的代码

        var doc = XDocument.Parse(richTextBox2.Text);
        var navigator = doc.CreateNavigator();
        var contentCell = navigator.SelectSingleNode("//td[@class='ltid']");
        txtTeam.Text = contentCell.Value;

但我不知道如何使用此类值获得第三个td 我搜索找到答案,但我找不到答案
我在这之前编写了另一个代码,但在第一个<tr>我们有3个,所以它只是从第一个<tr>而不是第三个<tr>发现的 请帮助我从第三个<tr>

获取价值

3 个答案:

答案 0 :(得分:0)

这是一种方式:

(//td[@class='ltid'])[3]

XPath将从整个XML文档返回第3次出现td[@class='ltid']

答案 1 :(得分:0)

有三种方法可以做到这一点:

xpath 1: //tr[3]/td[@class='ltid']
xpath 2: //td[@class='ltid'])[3]
xpath 3: //td[contains(text()='3')]

答案 2 :(得分:0)

您可以尝试:

var nav = doc.CreateNavigator();
XPathNodeIterator iterator = nav.Select("//td[@class='ltid']");
while (iterator.MoveNext())
{
    // do whatever you want with your item
}