从指定类的元素中检索文本作为综合数组
在此查询中,当前的任务是提取文本数据并对其进行分类来自基于特定元素类的 HTML 文档。 HTML 文档包含各种段落,其中包含“Heading1-P”和“Normal-P”等类,每个段落都包含相应的标题和内容。
为了实现此目的,我们可以利用 PHP DOM 文档和 XPath。该过程涉及解析 HTML 文档并使用 XPath 遍历其元素。我们定义一个自定义函数 parseToArray(),它将 XPath 对象和类名作为输入。该函数遍历与类匹配的元素,并将其文本内容提取到数组中。
详细解决方案如下:
$test = <<< HTML <p class="Heading1-P"> <span class="Heading1-H">Chapter 1</span> </p> <p class="Normal-P"> <span class="Normal-H">This is chapter 1</span> </p> <p class="Heading1-P"> <span class="Heading1-H">Chapter 2</span> </p> <p class="Normal-P"> <span class="Normal-H">This is chapter 2</span> </p> <p class="Heading1-P"> <span class="Heading1-H">Chapter 3</span> </p> <p class="Normal-P"> <span class="Normal-H">This is chapter 3</span> </p> HTML; $dom = new DOMDocument(); $dom->loadHTML($test); $xpath = new DOMXPath($dom); $heading = parseToArray($xpath, 'Heading1-H'); $content = parseToArray($xpath, 'Normal-H'); var_dump($heading); echo "<br/>"; var_dump($content); echo "<br/>"; function parseToArray(DOMXPath $xpath, string $class): array { $xpathquery = "//[@class='$class']"; $elements = $xpath->query($xpathquery); $resultarray = []; foreach ($elements as $element) { $nodes = $element->childNodes; foreach ($nodes as $node) { $resultarray[] = $node->nodeValue; } } return $resultarray; }
函数 parseToArray() 根据特定类识别元素名称并将其文本内容提取到数组中。随后,创建两个数组:$heading 和$content,分别包含章节标题和相应的段落文本。代码的输出如下:
array(3) { [0] => string(8) "Chapter 1" [1] => string(8) "Chapter 2" [2] => string(8) "Chapter 3" } array(3) { [0] => string(16) "This is chapter 1" [1] => string(16) "This is chapter 2" [2] => string(16) "This is chapter 3" }
通过采用这种方法,您可以根据特定的类名从 HTML 文档中高效地检索和分离文本内容,从而实现灵活且有针对性的数据处理。
以上是如何使用 PHP 根据特定元素类从 HTML 文档中提取文本数据并对其进行分类?的详细内容。更多信息请关注PHP中文网其他相关文章!