繁体   English   中英

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

[英]how to get a text from xpath in c#

我想显示我的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> 

我想得到第三支球队
我想获取'<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>获得价值

这是一种方法:

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

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

您可以通过3种方式执行此操作:

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

你可以试试:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM