php - PHP:使用 DomXPath 添加/编辑输出标签
问题描述
我应该能够修改通过以下查询获得的输出:
$ods22_tmp_t =$finder->query("//*[contains(@class, 'PPToggle')]");
输出如下:
<tr class="PPToggle" CO="8465">
<td PT="0" PABloccato="True" Validato="False" MeseValidato="False"><div title="HD09001300 dalle ore 09:00 alle ore 13:00" class="cellePiano" PT="1428" ColoreTesto="#000000" ColoreSfondo="">
HD09001300
</div><div title="HD14001800 dalle ore 14:00 alle ore 18:00" class="cellePiano" PT="142" ColoreTesto="#000000" ColoreSfondo="">
HD14001800
</div></td><td PT="0" PABloccato="True" Validato="False" MeseValidato="False"><div title="HD10001400 dalle ore 10:00 alle ore 14:00" class="cellePiano" PT="142219" ColoreTesto="#000000" ColoreSfondo="">
HD10001400
</div><div title="HD15001900 dalle ore 15:00 alle ore 19:00" class="cellePiano" PT="142820" ColoreTesto="#000000" ColoreSfondo="">
HD15001900
</div></td><td PT="0" PABloccato="True" Validato="False" MeseValidato="False"><div title="HD13001700 dalle ore 13:00 alle ore 17:00" class="cellePiano" PT="142882" ColoreTesto="#000000" ColoreSfondo="">
HD13001700
</div><div title="HD18002200 dalle ore 18:00 alle ore 22:00" class="cellePiano" PT="14287" ColoreTesto="#000000" ColoreSfondo="">
HD18002200
</div></td>
</tr>
我想在 TR 和 TD 之间添加这个标签:
<th>Operator</th>
如何指定我想在两个之间添加一个标签?
解决方案
您需要创建您之后的元素,然后用于insertBefore()
在文档中定位这个新节点($node->firstChild
首先用于定位它)......
$dom = new DOMDocument;
$dom->loadHTML($html);
$xpath = new DOMXpath($dom);
$ods22_tmp_t = $xpath->query("//*[contains(@class, 'PPToggle')]");
foreach($ods22_tmp_t as $node) {
$th = $dom->createElement("th", "Operator");
$node->insertBefore($th, $node->firstChild);
}
推荐阅读
- node.js - 猫鼬填充多个级别
- html - 圆圈除以两个带有图像的css
- spring - Spring Boot 控制器问题,出现白标签页面错误,这里可能有什么问题?
- angular - 无法读取角度 HTML 中嵌套表单组上未定义的属性“hasError”
- macos - 如何使用机器人框架打开 iterm 然后运行节点 --version 并检查结果
- json - 如何使用 Angular 中的索引从 JSON 对象中获取值
- user-interface - Xamarin 表单页面过渡动画
- url - 什么是 URL 参数?fireglass_rsn=true
- c++ - 如何使用 glm::rotate 围绕原点以外的点旋转对象?
- javascript - 在 Javascript 中使用 Rest 参数时出错