提取字符串中的li文本值

问题描述 投票:0回答:2

我尝试了很多功能,但未能获得准确的值。这是我的动态文本。我只想获取/提取尺寸值(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 mysqli
2个回答
0
投票

你想要实现的目标无法在纯 php 中完成,但在 javascript 中是可能的,因为 js 是一种主要面向 DOM 操作的语言。这是请求与您类似的内容的示例线程:

获取li元素的文本


0
投票

我将使用 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',
)
© www.soinside.com 2019 - 2024. All rights reserved.