1

我正在使用 Qwebkit,我希望能够将最后作为第一条记录 ( <tr><td>...my data ...</td></tr>) 的每个数据输入插入到 html 表中。这是我的代码,这只是示例:

ui.webView->page()->mainFrame()->setHtml("<html><body><p>HTML Table Test</p>"
                                            "<table id=\"mainTable\" name=\"mainTable\" BORDER=1 BORDERCOLOR=RED></table>"
                                             "</body></html>");
    QWebElement body = ui.webView->page()->mainFrame()->documentElement();
    QWebElement mainTable = ui.webView->page()->mainFrame()->findFirstElement("#mainTable");
    mainTable.appendInside ("<tr><td>1111111<\/td></\tr>");      ///<-- this is i like to be last in the end
    mainTable.appendInside ("<tr><td>2222222<\/td></\tr>");      ///<-- this is i like to be in the middle
    mainTable.appendInside ("<tr><td>3333333<\/td></\tr>");     ///<-- this is i like to be in the first

记录的内容是动态的,而不是我在这里展示的,所以我不能硬编码;简而言之,我在这里需要 LIFO 算法..

我该怎么做?

4

1 回答 1

3

QWebElement::appendInside方法将参数添加到 web 元素的末尾。该QWebElement::prependInside方法将参数添加到 Web 元素的开头。

如果我们有一个QWebElement *elt包含一个空表,例如:

<table><table>

创建下表,

<table>
  <tr><td>A</td></tr>
  <tr><td>B</td></tr>
  <tr><td>C</td></tr>
</table>

您可以使用以下两种方法之一,它们是等效的。

方法1,带appendInside

elt->appendInside("<tr><td>A</td></tr>");
elt->appendInside("<tr><td>B</td></tr>");
elt->appendInside("<tr><td>C</td></tr>");

或方法 2,使用 preprendInside

elt->prependInside("<tr><td>C</td></tr>");
elt->prependInside("<tr><td>B</td></tr>");
elt->prependInside("<tr><td>A</td></tr>");

使用prependInsideorappendInside让您可以控制算法的 FIFO 或 LIFO 行为。

于 2010-05-04T09:56:11.917 回答