Windows phone 8 HTML解析单个表/不是所有正在解析的数据?
对于WindowsPhone8的开发,我是个新手,我一直在玩弄一些东西,作为我正在开发的应用程序的一部分 现在我正试图解析一个网站上的信息,比如RuneScape 07 High Scores- 我使用的是HTML Agility Pack,我能够解析一些数据(下至木刻),但传递的任何内容都不会出现吗?(这是我的列表框的大小吗?) 理想情况下,我希望能够单独解析表信息,而不是像这样在一个块中解析:Windows phone 8 HTML解析单个表/不是所有正在解析的数据?,windows-phone-8,html-parsing,html-agility-pack,Windows Phone 8,Html Parsing,Html Agility Pack,对于WindowsPhone8的开发,我是个新手,我一直在玩弄一些东西,作为我正在开发的应用程序的一部分 现在我正试图解析一个网站上的信息,比如RuneScape 07 High Scores- 我使用的是HTML Agility Pack,我能够解析一些数据(下至木刻),但传递的任何内容都不会出现吗?(这是我的列表框的大小吗?) 理想情况下,我希望能够单独解析表信息,而不是像这样在一个块中解析: public MainPage() { InitializeCompone
public MainPage()
{
InitializeComponent();
HtmlWeb.LoadAsync("http://services.runescape.com/m=hiscore_oldschool/hiscorepersonal.ws?user1=zezima", DownLoadCompleted);
}
void DownLoadCompleted(object sender, HtmlDocumentLoadCompleted e)
{
if(e.Error == null)
{
HtmlDocument doc = e.Document;
if (doc != null)
{
var result = doc.DocumentNode.SelectNodes("//div[@id='contentHiscores']");
foreach (var htmlNode in result)
{
lBox.Items.Add(htmlNode.InnerText);
}
}
}
但是如果我尝试使用
var result = doc.DocumentNode.SelectNodes("//div[@id='contentHiscores']/table/tbody/tr[5]/td[2]");
我得到一个NullReferenceException
这是可能的还是我做错了什么?您可能依赖于FireBug或Chrome等开发工具。。。确定要查找的节点的XPATH 您确实可以这样做,因为这些工具提供的XPATH对应于内存中的HTMLDOM,而HTMLAgility包只知道服务器返回的原始HTML 您需要做的是查看返回的内容(或者只是查看源代码)。例如,您将看到没有TBODY元素。所以你想找到任何有区别的东西,比如说 下面是一个似乎有效的代码:
// get all TD nodes with ALIGN attribute set to left
foreach (var node in doc.DocumentNode.SelectNodes("//div[@id='contentHiscores']//td[@align='left']"))
{
var item = lBox.Items.Add(node.InnerText.Trim());
// use an 'XPATH axe': get all sibling TD nodes with ALIGN attribute set to 'right'
foreach (var sibling in node.SelectNodes("following-sibling::td[@align='right']"))
{
item.SubItems.Add(sibling.InnerText.Trim());
}
}
是result为null还是InnerText属性?它的result为null,当涉及到foreach时,它在尝试访问特定点时会中断。如果您稍微中断它,当您得到一个非null结果时,会删除每个子查询?谢谢!这对我帮助很大,我现在有了更大的理解!)最后一件可能听起来很愚蠢的事情——如果我按原样实现,我会得到一个
无法将void赋值给隐式类型的局部变量错误,该错误与var item=lbox.x.x有关。这与我的void DownLoadCompleted
回拨有关,还是其他原因?在我的课程中,我们还没有真正涵盖VAR,所以我可能比自己领先了。:)@SimonMourier@Optimistic-哦,那只是为了样品。这段代码适用于Windorms表单(并添加一个项+一堆子项),但在您的平台上,这意味着添加不会返回任何结果。