【问题标题】:HtmlAgilityPack to get data from HTML table in C#HtmlAgilityPack 从 C# 中的 HTML 表中获取数据
【发布时间】:2023-03-19 14:10:01
【问题描述】:

使用 HtmlAgilityPack,如何从 HTML 表中的 C# 中的输入隐藏值和 tr、td 速率中获取数据?

我需要将隐藏值输入到 tr, td 速率。如何在下面的 html 表格中获取该信息?

<table>
    <caption>
        <div id="cal_nav"
             class="float_right">
            <ul class="inline">
                <li>
                    <a href="#"
                       onClick="changeRatesView('calendar')">Calendar View</a>
                </li>
                <li id="previous"
                    class="first">
                    <a title="September"
                       -  "2015"
                       href="#"
                       onClick="searchPrevMonthAvailability()">&nbsp;</a>
                </li>
        </div>
    </caption>
    <thead>
        <tr>
            <th>Date</th>
            <th>Occupancy</th>
            <th>Net Rate</th>
            <th>Sell Rate</th>
        </tr>
    </thead>
    <tbody>
        <input type="hidden"
               name="rateid"
               value="234154166">
        <tr>
            <td>1</td>
            <td>single</td>
            <td>1652</td>
            <td>2500</td>
        </tr>
        <tr>
            <td>2</td>
            <td>single</td>
            <td>1454</td>
            <td>4344</td>
        </tr>
        <input type="hidden"
               name="rateid"
               value="234154134">
        <tr>
            <td>1</td>
            <td>single</td>
            <td>1652</td>
            <td>2500</td>
        </tr>
        <tr>
            <td>2</td>
            <td>single</td>
            <td>1454</td>
            <td>4344</td>
        </tr>
        <input type="hidden"
               name="rateid"
               value="234154145">
            <tr>
                <td>1</td>
                <td>single</td>
                <td>1652</td>
                <td>2500</td>
            </tr>
            <tr>
                <td>2</td>
                <td>single</td>
                <td>1454</td>
                <td>4344</td>
            </tr>
    </tbody>
</table>

我的 Linq 代码:

var tds= (from td in doc.DocumentNode.Descendants("table")
select td).ToList()[2].ChildNodes[2];

var trer = tdsyh.SelectNodes("//input[@type='hidden' and     @name='rateid']|tr").Select(x => x).ToList();

【问题讨论】:

  • 你想在这里问什么?
  • 如何使用 HtmlAgilityPack 从 hmtl 表中获取输入隐藏值和 tr、td 速率值

标签: c# html-table html-agility-pack


【解决方案1】:

你可以试试这样的:

var hiddenFields = doc.DocumentNode.Descendants("input").Where(_ => _.GetAttributeValue("type", "").Equals("hidden") && _.Name.Equals("rateid"));

【讨论】:

    猜你喜欢
    • 2011-06-05
    • 1970-01-01
    • 1970-01-01
    • 2013-01-08
    • 1970-01-01
    • 1970-01-01
    • 2012-05-17
    • 1970-01-01
    • 2012-10-28
    相关资源
    最近更新 更多