2017-04-20 69 views
0
<tr id="5" class="altRow "> 
    <td>37</td> 
    <td>$CUSTOM_MESSAGE_13$</td> 
    <td>0</td> 
    <td></td> 
</tr> 

大家好,我正在与Xamarin iOS应用程序,我需要检索某个PHP页面的价值,因为我不能用Xamarin中的Xpath代码,我必须使用Linq在上面的代码中获取值低于$CUSTOM_MESSAGE_13$的值0。有人能帮助我吗?的使用LINQ和HTML敏捷性包iOS应用程序解析PHP页面

我试着使用下面的代码,但我不知道如何完成它。

var msg = 
    (from td in html.DocumentNode.Descendants("td") 
    where td.InnerText.ToLower() == "$CUSTOM_MESSAGE_13$" 
    select td).FirstOrDefault(); 
var info = msg.ToString(); 
TextE1.Text = info; 

我试图用this tutorial但我认为问题是,0是在同一个节点是$CUSTOM_MESSAGE_13$,我不知道怎么回去。

另一个精度,我尝试返回的值是在一个表中,但我不知道如何提取它。

Link of the screenshot of the table

+0

使用跳过()在你的LINQ去“下一个”节点 – Jason

+0

你有你在哪里使用ToLower将(),然后试图匹配一个大写常数的问题。 – NetMage

回答

0

LINQ的是不通过数据顺序地扫描正确的工具。理论上,Descendants()函数可以以任何顺序返回td元素。但是,你可以试试:

var tds = html.DocumentNode.Descendants("td").ToArray(); 
var msg = tds[Array.FindIndex(td => td.ToUpper() == "$CUSTOM_MESSAGE_13$")+1]; 
var info = msg.ToString(); 
TextE1.Text = info; 
+0

谢谢我有find.index函数的语法,但我认为它会起作用。 – Bak