如何将p标签插入现有的div / HTML中

时间:2013-04-10 11:23:17

标签: php web-scraping

我使用simplehtmldom_1_5从网站上抓取了html数据,在抓取后我想在<p>标记中插入每个<p>标记的不同ID的文本,如下所述:

 Suppose scrapped data:

          <div class="maincontainer">
            <div class="first">
            first text 
            </div>
            <div class="second">
            second text 
            </div>

            <div class="third">
            third text 
            </div>

            <div class="fourth">
            fourth text 
            </div>
fifth string 
          </div>

    And I want result like this below:

          <div class="maincontainer">
            <div class="first">
            <p  id="1">first text </p> 
            </div>
            <div class="second">
            <p  id="2">second text </p>
            </div>

            <div class="third">
            <p  id="3">third text </p>
            </div>

            <div class="fourth">
            <p  id="4">fourth text </p>
            </div>
    <p  id="5">   fifth string </p>
          </div>

伙计们,我想在抓刮过程中这样做。

3 个答案:

答案 0 :(得分:1)

可能不是最有效的方法 工作jsFiddle

http://jsfiddle.net/Diabl0570/FhZZQ/1/

//jquery
$(function(){
    var count = 1;
    $("div.maincontainer div").each(function(){
           var html = $(this).html(); 
        $(this).html("<span id='"+count+"'>"+ html + "</span>");
        count= count+1;
    });
});

答案 1 :(得分:0)

您可以像这样使用jQuery:

$(document).ready(function () {
    $('div').each(function (i) {
        var $this = $(this);
        if (!$this.find('div, span, div, img, ul, a').length) {
            var elData = $this.html();
            if ($.trim(elData) != '') {
                var appendData = '<p  id="' + (i + 1) + '">' + elData + '</p>';
                $this.html(appendData);
            }
        }
    });

});

@ JsFiddle

答案 2 :(得分:0)

使用perl,您可以尝试下面的代码。我将输入文件称为“xml.xml”。我想在PHP中有类似的东西,不是吗?

#!/usr/bin/perl

use strict;
use warnings;

open my $fh, "<xml.xml" or die;
my $i;
while (<$fh>) {
    if (/\s*</||/^\s*$/) { print; next }
    ++$i;
    s{^(\s*)(.*)$}{$1<p id="$i">$2</p>};
    redo;
}
close $fh;