Игнорировать некоторые узлы TR - PullRequest
0 голосов
/ 14 октября 2018

У меня есть HTML вроде

<body>
<tr class="sysinfoTableCategoryHeader">
    <td colspan="4">Operating System</td>
</tr>

    <tr class="sysinfoTablePropertyEven">
        <td />
        <td />
        <td><span class="sysinfoTablePropertyKey">Operating System Name</span></td>
        <td><span class="sysinfoTablePropertyValue">Linux</span></td>
    </tr>

    <tr class="sysinfoTablePropertyOdd">
        <td />
        <td />
        <td><span class="sysinfoTablePropertyKey">Kernel Version</span></td>
        <td><span class="sysinfoTablePropertyValue">4.8.0-1-amd64</span></td>
    </tr>

<tr class="sysinfoTableCategoryHeader">
    <td colspan="4">Motherboard</td>
</tr>

    <tr class="sysinfoTablePropertyEven">
        <td />
        <td />
        <td><span class="sysinfoTablePropertyKey">Manufacturer</span></td>
        <td><span class="sysinfoTablePropertyValue">Acer</span></td>
    </tr>

    <tr class="sysinfoTablePropertyOdd">
        <td />
        <td />
        <td><span class="sysinfoTablePropertyKey">Product</span></td>
        <td><span class="sysinfoTablePropertyValue">Aspire E5-531</span></td>
    </tr>
</body>

Так что я могу выбрать все тело из этого HTML-файла, который на самом деле потрясающий.Но есть одна проблема.Допустим, из этого тела я хочу игнорировать узел с class name="sysinfoTableCategoryHeader" Операционная система.

Это вообще выполнимо?

Мой вывод должен быть таким

<body>
<tr class="sysinfoTableCategoryHeader">
    <td colspan="4">Motherboard</td>
</tr>

    <tr class="sysinfoTablePropertyEven">
        <td />
        <td />
        <td><span class="sysinfoTablePropertyKey">Manufacturer</span></td>
        <td><span class="sysinfoTablePropertyValue">Acer</span></td>
    </tr>

    <tr class="sysinfoTablePropertyOdd">
        <td />
        <td />
        <td><span class="sysinfoTablePropertyKey">Product</span></td>
        <td><span class="sysinfoTablePropertyValue">Aspire E5-531</span></td>
    </tr>
</body>

Как я могу увеличить его с помощью HTMLAGILITYPACK ??

Ответы [ 2 ]

0 голосов
/ 17 октября 2018

Я немного англичанин.код exp:

    HtmlDocument htmlDoc = new HtmlDocument(); 
htmlDoc.LoadHtml(your html code); 
HtmlNodeCollection htmlNodes = htmlDoc.DocumentNode.SelectNodes("//body/tr[@class!='sysinfoTableCategoryHeader']");

htmlNodes - это то, что вам нужно.Или используйте RemoveAllIDforNode ();

    HtmlNodeCollection htmlNodes = htmlDoc.DocumentNode.SelectNodes("//body/tr[@class='sysinfoTableCategoryHeader']"); 

foreach (HtmlNode node in htmlNodes) {
 htmlDoc.DocumentNode.RemoveAllIDforNode(node); 
}
0 голосов
/ 17 октября 2018

вам нужно найти xpath // tr [@class! = 'SysinfoTableCategoryHeader'] оператор xpath have.

...