首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用敏捷包WP8解析HTML页面

用敏捷包WP8解析HTML页面
EN

Stack Overflow用户
提问于 2014-04-23 09:33:04
回答 1查看 248关注 0票数 0

我想解析这个文件:(只有重要的部分)

代码语言:javascript
复制
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
...
</head>
<body onload="Xaprb.InputMask.setupElementMasks()">
<div align="center">
        <table> ... </table>
        <table width="900" height="500" border="0" cellpadding="0"
            cellspacing="0" class="content">
        <tr>
    <td width="45">&nbsp;</td>
    <td width="210" valign="top">
    <div class="np_table">
        <div class="np_bl">
            <div class="np_br">
                <div class="np_tl">
                    <div class="np_tr">
                    <span class="name_heading">Hello</span><br />
                    <span class="name_content">**NAME I NEED**</span><br />
                    <br /> <span class="name_heading">Number:</span><br />
                    <span class="name_content">**NUMBER I NEED**</span>
                    </div>
                </div>
            </div>
        </div>
    </div> <br>

    <div class="menu"> ... </div>

    <p>&nbsp;</p>
    </td>
    <td width="600" valign="top">
        <div class="content_table">
        <div class="ct_bl">
            <div class="ct_br">
                <div class="ct_tl">
                    <div class="ct_tr">
                       <span class="heading">...</span>
                       <p><b>**I need this number too: 250**</b> <br />
               <br />
               Here is the datum I want: **17-04-2014**. <br />
               Please do not...</p>
               <p><b>...</b></p>
    <br /><br>
                 </div>
            </div>
        </div>
      </div>
    </div>
    </td>
</body>
</html>

现在我要四个字符串,两个数字,日期和一个名字。我有这样的代码:

代码语言:javascript
复制
HttpClient client = new HttpClient();
var doc = new HtmlAgilityPack.HtmlDocument();
var html = await client.GetStringAsync("http://example.com");
doc.LoadHtml(html);

var name = ???
var numberone = ???
var numbertwo = ???
var date = ???

但是我不知道我是如何用HTML敏捷包成为这些信息的。有人能帮我吗?还是给我个提示?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-23 10:45:18

我们可以使用XPath查询来选择HtmlAgilityPack文档的特定部分。因此,阅读一些XPath教程就可以开始了:

  • MSDN:XPath参考
  • W2School:XPath语法

例如,要从示例NAME I NEED中获取此问题中的HTML:

代码语言:javascript
复制
var name = 
    doc.DocumentNode
       .SelectSingleNode("//span[@class='name_content' and .='Hello']/following-sibling::span[1]");
if(name!= null) Console.WriteLine(name.InnerText);

对上述样本中使用的XPath的解释:

//span

  • 扫描整个文档以查找<span>元素..。

[@class='name_content' and .='Hello']

  • 类属性值等于"name_content",元素值等于"Hello"

/following-sibling::span[1]

  • 然后从当前的<span>中获取,最接近于<span>类型的同级元素.
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23240312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档