将DOM修改为样式顺序标题

时间:2016-02-26 02:34:23

标签: php dom domdocument

让我们从数据库表中的这个html开始:

import errno
try:
    with open('/dev/tty', 'w') as tty:
        tty.write('prompt> ')
except IOError as exc:
    if exc.errno == errno.ENXIO:
        pass # no /dev/tty available
    else:
        pass # something else went wrong

这是我在通过DOM脚本运行后显示的样子:

<section id="love">
<h2 class="h2Article">III. Love</h2>
<div class="divArticle">

这就是我希望它看起来像这样:

<section id="love"><h2 class="h2Article" id="a3" data-toggle="collapse" data-target="#b3">III. Love</h2>
<div class="divArticle collapse in article" id="b3">

换句话说,DOM给了它必要的功能,正确地为每个id顺序编号。所有缺少的是造型:

<section id="love"><h2 class="h2Article" id="a3" data- toggle="collapse" data-target="#b3">
    <span class="Article label label-primary">
        <i class="only-collapsed fa fa-chevron-down"></i>
        <i class="only-expanded fa fa-remove"></i> III. Love</span></h2>
<div class="divArticle collapse in article" id="b3">

有谁能告诉我如何添加样式?当然,标题会改变(例如III.Love,IV.Hate等)。我在下面发布了我的DOM脚本:

<span class="Article"><span class="label label-primary"><i class="only- collapsed fa fa-chevron-down"></i><i class="only-expanded fa fa-remove"> </i> III. Love</span></span>

2 个答案:

答案 0 :(得分:1)

由于在这种情况下正在使用DOM Document对象,因此createElement函数可用于添加HTML。

请参阅http://php.net/manual/en/domdocument.createelement.php

从附页上的文档中窃取

<?php

$dom = new DOMDocument('1.0', 'utf-8');

$element = $dom->createElement('test', 'This is the root element!');

// We insert the new element as root (child of the document)
$dom->appendChild($element);

echo $dom->saveXML();
?>

将输出

<?xml version="1.0" encoding="utf-8"?>
<test>This is the root element!</test>

如果没有DOM对象,通常可以通过以下方式之一添加PHP。

1

echo "<div>this method is often used for shorter pieces of HTML</div>";

2

?> <div> You can also escape out of HTML and then "turn" PHP back on like this </div> <?php

第一种方法使用echo命令输出HTML字符串。第二种方法使用
?>转义标记告诉计算机开始将所有内容视为HTML,直到它看到另一个开放的<?php PHP标记。

通常在PHP文件中,您可以像这样添加HTML。

?> 
   <span class="Article">
       <span class="label label-primary">
           <i class="only- collapsed fa fa-chevron-down"></i>
           <i class="only-expanded fa fa-remove"></i> 
           III. Love
       </span>
    </span>
<?php

但是,在这种情况下,我们正在尝试编辑来自数据库内部的内容,但我们无法做到这一点。

答案 1 :(得分:0)

嗯,我想明显的解决办法是将标题包装成可以用简单的str_replace修改的内容......

<h2><span class="Answer">IIII. Love</span></h2>

甚至这个......

<h2>[]III. Love[]</h2>

有点米老鼠,但它完成了工作。我只需将所有代码写出或粘贴到每篇文章的每个标题中。我更喜欢尽可能地自动化它。