首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C# -将HTML源代码解析为C#

C# -将HTML源代码解析为C#
EN

Stack Overflow用户
提问于 2010-06-11 00:24:54
回答 4查看 9.1K关注 0票数 3

我想读入一个包含HTML文件的动态URL,并根据节点(HTML标记)像读取XML文件一样读取它。这有没有可能呢?

我的意思是,有这样一段HTML代码:

代码语言:javascript
复制
            <table class="bidders" cellpadding="0" cellspacing="0"> 

            <tr class="bidRow4"> 
                <td>kucik (automata)</td> 
                <td class="right">9 374 Ft</td> 
                <td class="bidders_date">2010-06-10 18:19:52</td> 
            </tr> 

            <tr class="bidRow4"> 
                <td>macszaf (automata)</td> 
                <td class="right">9 373 Ft</td> 
                <td class="bidders_date">2010-06-10 18:19:52</td> 
            </tr> 

            <tr class="bidRow2"> 
                <td>kucik (automata)</td> 
                <td class="right">9 372 Ft</td> 
                <td class="bidders_date">2010-06-10 18:19:42</td> 
            </tr> 

            <tr class="bidRow2"> 
                <td>macszaf (automata)</td> 
                <td class="right">9 371 Ft</td> 
                <td class="bidders_date">2010-06-10 18:19:42</td> 
            </tr> 

            <tr class="bidRow0"> 
                <td>kucik (automata)</td> 
                <td class="right">9 370 Ft</td> 
                <td class="bidders_date">2010-06-10 18:19:32</td> 
            </tr> 

            <tr class="bidRow0"> 
                <td>macszaf (automata)</td> 
                <td class="right">9 369 Ft</td> 
                <td class="bidders_date">2010-06-10 18:19:32</td> 
            </tr> 

            <tr class="bidRow8"> 
                <td>kucik (automata)</td> 
                <td class="right">9 368 Ft</td> 
                <td class="bidders_date">2010-06-10 18:19:22</td> 
            </tr> 

            <tr class="bidRow8"> 
                <td>macszaf (automata)</td> 
                <td class="right">9 367 Ft</td> 
                <td class="bidders_date">2010-06-10 18:19:22</td> 
            </tr> 

            <tr class="bidRow6"> 
                <td>kucik (automata)</td> 
                <td class="right">9 366 Ft</td> 
                <td class="bidders_date">2010-06-10 18:19:12</td> 
            </tr> 

            <tr class="bidRow6"> 
                <td>macszaf (automata)</td> 
                <td class="right">9 365 Ft</td> 
                <td class="bidders_date">2010-06-10 18:19:12</td> 
            </tr> 

        </table> 

我想把它解析成一个ListView (或网格)来创建包含数据的行。所有tr都是不同的行,并且给定td中的所有td都是给定行中的一列。

我还希望它尽可能快,因为它会在5秒内自我更新。

有没有这样的库呢?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-06-11 00:26:43

我推荐HTML Agility Pack。您必须自己处理GUI部分。它不需要有效的超文本标记语言,但会创建一个类似于XmlDocument的HtmlDocument。

票数 8
EN

Stack Overflow用户

发布于 2010-06-11 00:29:15

当然,这是可能的。但需要注意的是,兼容的xml处理程序应该将任何格式不正确的内容都视为致命错误。这意味着它只适用于通过xhtml严格验证的文档。

票数 0
EN

Stack Overflow用户

发布于 2010-06-11 00:37:45

为什么不直接进行字符串替换,将HTML表格转换为XML:

代码语言:javascript
复制
   <table class="bidders" cellpadding="0" cellspacing="0">

变成:

代码语言:javascript
复制
   <?xml version="1.0" encoding="UTF-8"?>

代码语言:javascript
复制
  <tr class="bidRow4">

变成了

代码语言:javascript
复制
  <item>

代码语言:javascript
复制
 <td class="right">

变成了

代码语言:javascript
复制
 <field1>

EDIT 1:

我还认为DataSet类有一个:

代码语言:javascript
复制
.ReadXML

方法,这样您就可以将数据绑定到该数据集:

代码语言:javascript
复制
    DataSet ds = new DataSet();
    ds.ReadXml("foo.xml");
    DataGrid.DataSource = ds;
    DataGrid.DataBind();

或者类似的东西

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3016327

复制
相关文章

相似问题

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