我尝试了很多功能,但未能获得准确的值。这是我的动态文本。我只想获取/提取尺寸值(36,38,40,...)。如何从该文本值中提取?这是我从数据库中动态获取的完整内容。
<ul>
<li>
<span>Colors: </span>Off White, Turquoise</li>
<li><span>Type: </span>Stitched</li>
<li><span>Sizes: </span>36, 38, 40</li>
</ul>
你想要实现的目标无法在纯 php 中完成,但在 javascript 中是可能的,因为 js 是一种主要面向 DOM 操作的语言。这是请求与您类似的内容的示例线程:
我将使用 DOMDocument 和 XPath 来直接将所需的文本与 HTML 输入隔离。
//li/span[text()='Sizes: ']/parent::li/text()
表示定位文本中包含Sizes:
的li标签,然后引用其父li并返回其文本。string()
中并使用 evaluate()
将以字符串形式返回第一个遇到的文本。代码:(演示)
$dom = new DOMDocument();
$dom->loadHTML($html);
var_export(
explode(
', ',
(new DOMXPath($dom))->evaluate("string(//li/span[text()='Sizes: ']/parent::li/text())")
)
);
输出:
array (
0 => '36',
1 => '38',
2 => '40',
)