2016-03-25 23 views
0

我想從我的XML文件,並
顯示的數據,這是我的xml文件 如何從XPath的C#中的文本

<table> 
 
    <tr class="even"> 
 
\t <td class="ltid">1</td> 
 
\t <td class="ltn">لستر سیتی</td> 
 
\t <td class="ltg">31</td> 
 
\t <td class="ltw">19</td> 
 
\t <td class="ltd">9</td> 
 
\t <td class="ltl">3</td> 
 
\t <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>

回答

0

這是一個路徑值:

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

中的XPath將整個XML文檔返回td[@class='ltid']第三發生。

+0

它要說的是:其他信息: '// TD [@類=' 的ltid']) [3]'有一個無效的標記。 – Avenger

+0

你錯過了開頭的圓括號'('在開頭:'(// td [@ class ='ltid'])[3]' – har07

+0

它工作,但它從第一個'tr'再次支持而不是第三個'tr – Avenger

0

有3種方式,你可以這樣做:

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

問題是'3'已經在第一個tr和這些方式只是從第一個tr不是第三tr – Avenger

+0

對不起,沒有看到,你可以嘗試// tr [3]/td [contains(@ class,'ltid')幷包含(text(),'3')]。 你嘗試過那裏的第一個xath嗎?那個人應該爲你正在尋找的東西工作。另外,您可能需要下載Firebug/Firepath,這是一個Firefox插件,您可以使用它自動獲取xpaths – Kristian

0

你可以試試:

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