php - 如何使用 php 从 DIV 标签中获取 html 代码
问题描述
我有示例代码:
<div id="modal-body-3" class="modal-body">
<p class="text">Tài khoản của quý khách đã được ghi nợ/ghi có với những thông tin sau:</p>
<div class="modal-row first">
<div class="modal-label">Ngày giao dịch</div>
<div class="modal-controls"><span class="transaction-date">21/12/2019</span><span class="transaction-time">09:38:07</span></div>
</div>
<div class="modal-row">
<div class="modal-label">Ngày hạch toán</div>
<div class="modal-controls">21/12/2019 09:38:07</div>
</div>
</div>
我想要代码输出:
<p class="text">Tài khoản của quý khách đã được ghi nợ/ghi có với những thông tin sau:</p>
<div class="modal-row first">
<div class="modal-label">Ngày giao dịch</div>
<div class="modal-controls"><span class="transaction-date">21/12/2019</span><span class="transaction-time">09:38:07</span></div>
</div>
<div class="modal-row">
<div class="modal-label">Ngày hạch toán</div>
<div class="modal-controls">21/12/2019 09:38:07</div>
</div>
我尝试过 DOMDocument:
$res = array();
$doc = new DOMDocument();
@$doc->loadHTML('<?xml encoding="UTF-8">'.$html);
$classname = "modal-body";
$finder = new DomXPath($doc);
$spanner = $finder->query("//*[contains(@class, '$classname')]");
foreach ($spanner as $entry) {
$res[] = $entry->nodeValue;
}
但是,代码只输出没有 html 标签的文本。求帮助!
解决方案
你写的问题不清楚。如果您的文本由<div id="modal-body-3">
包含任意 HTML 的 HTML 组成,并且您想要提取该 HTML,那么这是在客户端执行此操作的一种方法:
let HTML = `<div id="modal-body-3" class="modal-body">
<p class="text">Tài khoản của quý khách đã được ghi nợ/ghi có với những thông tin sau:</p>
<div class="modal-row first">
<div class="modal-label">Ngày giao dịch</div>
<div class="modal-controls"><span class="transaction-date">21/12/2019</span><span class="transaction-time">09:38:07</span></div>
</div>
<div class="modal-row">
<div class="modal-label">Ngày hạch toán</div>
<div class="modal-controls">21/12/2019 09:38:07</div>
</div>
</div>`
let el = document.getElementById("html");
el.innerHTML = HTML; // store HTML into the DOM
el = document.getElementById('modal-body-3'); // get the text of what this encloses
let inner = el.innerHTML.trim();
console.log(inner);
<div id="html" style="display: none;"></div>
推荐阅读
- sql - postgres中具有多个值列的数据透视表
- migration - HIS(主机集成服务器)迁移工具问题
- java - 为什么 Java 不允许我添加子类实例?
- node.js - 在 nodejs 中实现 PostgreSQL HStore
- docker-compose - 手动设置 Envoy 代理时出现“没有健康的上游”错误
- kubernetes - 重新部署时无法更新部署容器端口名称
- grafana - 根据特定时间间隔过滤 prometheus 指标
- openshift - 访问 hostPath 的自定义 SCC 在 pod 上引发权限被拒绝
- numpy - 如何在各种形状的 numpy 数组列表上使用模型 __call__?
- cloud - 谷歌云 SDK 问题排查