esa*_*wan 5 html php dom html-manipulation
我有一个html文件,index.php我想将该文件<div>的类main中的内容与其他文本替换.我怎样才能实现这一目标?
html中的示例内容:
<div class="main">
Replace this text with some code!
</div>
Run Code Online (Sandbox Code Playgroud)
我希望使用php获取此div中的内容并将其替换为其他内容.但我不知道如何做到这一点.
更新: 我知道使用javascript的客户端技巧.我想做这个服务器端.该文件将是HTML而不是PHP.所以我想我必须在PHP中打开html并执行此操作,但我并不确切如何.
可以使用xpath或html dom解析器或其他东西吗?谷歌搜索给了我这些条款,但我不知道他们实际是什么.
Wes*_*n C 15
您可以使用PHP的DOM类/函数来执行此操作.
首先创建/加载您的文档:
$d = new DOMDocument();
$d->loadHTML($yourWellFormedHTMLString);
Run Code Online (Sandbox Code Playgroud)
然后,您将要找到要更改的文档节点.您可以使用XPath执行此操作:
$xpathsearch = new DOMXPath($d);
$nodes = $xpathsearch->query('//div[contains(@class,'main')]');
Run Code Online (Sandbox Code Playgroud)
然后,您将要遍历匹配的节点,并在其中创建新节点:
foreach($nodes as $node) {
$newnode = $d->createDocumentFragment();
$newnode->appendXML($yourCodeYouWantToFillIn);
$node->appendChild($newnode);
}
Run Code Online (Sandbox Code Playgroud)
如果您不介意在开发的早期阶段搞乱使用库,请查看CAST(内容寻址样式模板).它几乎被设计用于执行您正在描述的内容,如果没有其他内容,您可以在源代码内查看示例.
(注意:我确信精明的人会注意到它//div[contains(@class,'main')]并不完全等同于CSS选择器div.main......因为class属性可以包含多个类.这样做确实很难实现我觉得最好先从简化表达式,当你向人们介绍它时,即使它最适合那些走这条路线的人最终能够很好地了解xpath以正确处理这个问题.或者,只需使用id而不是类.:)
| 归档时间: |
|
| 查看次数: |
11150 次 |
| 最近记录: |