用dom php创建的不需要的div

时间:2015-03-07 23:23:06

标签: php dom

可以创建没有xml标签显示且没有任何问题的主div

$myfile = fopen("../userfolders/$email/$ongrassdb/$pagenameselected.php", "a+") or die("Unable to open file!");
$dom = new DOMDocument();
$ele = $dom->createElement('div', $textcon);
$ele ->setAttribute('id', $divname);
$ele ->setAttribute('style', 'background: '.$divbgcolor.'; color :'.$divfontcolor.' ;display : table-col; width :100%;');
$dom->appendChild($ele);
$html = $dom->saveHTML();
fwrite($myfile,$html);
fclose($myfile);

尝试创建子div,但下面的代码创建了父div和子div的重复项,并在每个div之后添加了XML标记

$myfile = fopen("../userfolders/$email/$ongrassdb/$pagenameselected.php", "a+") or die("Unable to open file!");
$file = "../userfolders/$email/$ongrassdb/$pagenameselected.php";
$doc = new DOMDocument();
$doc->loadHTMLFile($file);
$ele = $doc->createElement('div', $textcon);
$element = $doc->getElementsByTagName('div')->item(0);
$element->appendChild($ele);
$ele ->setAttribute('id', $divname);
$ele ->setAttribute('style', 'background: '.$divbgcolor.'; color :'.$divfontcolor.' ;display : table-cell;');
$doc->appendChild($ele);
$html = $doc->saveHTML();
fwrite($myfile,$html);

3 个答案:

答案 0 :(得分:0)

将+更改为w +,同时将saveXML更改为saveHTML

它将解决问题

由于

答案 1 :(得分:0)

这是一个模板,用于创建父项并随意附加子节点。

<?php
    $oDom                     = new DOMDocument( '1.0', 'UTF-8' );
    $oDom->preserveWhiteSpace = false;
    $oDom->formatOutput       = true;
    $iErrorFlag               = true;
    libxml_use_internal_errors( true );

    $oLog = $oDom->createElement( 'log' );
    $oDom->appendChild( $oLog );
    $oNde = $oDom->createElement( 'lognode' );
    $oLog->appendChild( $oNde );

    $oNde->appendChild( $oDom->createElement( 'message', 'My message!' ) );
    $oNde->appendChild( $oDom->createElement( 'user'   , 'My user!'    ) );
    $oNde->appendChild( $oDom->createElement( 'ip'     , 'My ip!'      ) );

    $bSuccess = file_put_contents( 'logfile.xml', $oDom->saveXML() );
?>

答案 2 :(得分:0)

更新

这个怎么样

你将有三个文件,$ outputfile将一个新文件保存到html中。 $ parentfile和$ childfile是你想要拉出div的两个文件。 $ pId是父div的ID,$ cId是子div的ID(如果我没有记错的话,应该在创建文件时设置)

$outputfile = '/path/to/new/output/file/';
$parentfile = '/path/to/file/with/parent/div/';
$childfile = '/path/to/file/with/child/div/';
$pId = 'myParentDivId';
$cId = 'myChildDivId';

$file = $parentfile;

$p = new DOMDocument();
$p->loadHTMLFile($file);
$pEle = $p->getElementById($pId);

$file = $childfile;

$c = new DOMDocument();
$c->loadHTMLFile($file);
$cEle = $c->getElementById($cId);

$pEle->appendChild($cEle);

$m = new DOMDocument();

$m->appendChild($pEle);

$myfile = fopen($outputfile, "a+") or die('bye');
$html = $m->saveHTML();
fwrite($myfile,$html);
fclose($myfile);