【问题标题】:Extracting data from an XML document without using an XML parser在不使用 XML 解析器的情况下从 XML 文档中提取数据
【发布时间】:2011-06-05 14:30:10
【问题描述】:

这是文档的几行:

  <div class="rowleft">
    <h3>Technical Fouls</h3>

    <table class="num-left">
      <tr class="datahl2b"> 
        <td>&nbsp;</td>
            <td>Players</td>
          </tr>
          <tr> 
            <td>DAL</td>
            <td>
              None</td>

          </tr>
          <tr> 
            <td>MIA</td>
            <td>
              Mike Miller</td>
            <td>
              Mike Miller, Jr.</td>
          </tr>
        </table>
    </div> 

我有兴趣从中提取 NoneMike MillerMike Miller, Jr.。我尝试使用各种 XML 解析器,但 1) 性能很差, 2) 文档显然不是格式正确的 XML 文档。

我一直在考虑的一件事是去除文档中的换行符,将其拆分为 &lt;tr&gt; 之类的内容,查看哪些行包含数据(可能使用 StartsWith()),然后使用正则表达式提取它。这对我的程序来说已经足够高效了(下载文档需要 5 秒时需要半秒并不重要),但我对它的替代解决方案很感兴趣。

【问题讨论】:

  • 性能很差?你能展示你一直在尝试的代码吗?
  • @Tomalak:对不起,它早已不复存在。但是将文档加载到变量中需要 20 多秒。
  • @Hui 这听起来像是下载需要时间,而不是加载。如果将它们分成两条不同的行会发生什么?一下载一启动解析器
  • @Oskar:使用WebClient 下载它需要 4-5 秒,所以这不是问题。
  • @Hui “它早就消失了”?怎么可能?

标签: c# xml regex


【解决方案1】:

Relevant

HTML 通常不是格式正确的 XML,我建议你使用类似 HTML Agility pack

【讨论】:

    【解决方案2】:

    尝试使用字符串操作和正则表达式解析 HTML 总是很容易出错。

    如果您的文档不是格式正确的 XML,我建议使用 HTML Agility Pack

    【讨论】:

      猜你喜欢
      • 2020-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-31
      • 2021-06-23
      • 2015-12-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多