如何剥离没有ID和Class的元素的html标签?

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

长话短说!我需要删除所有没有ID和Class设置的SPAN标签。我需要删除所有没有设置ID和Class的SPAN标签。我找到了DOMXPath查询选择器,可以用,但我不知道如何删除标签,而不触动文本。

关于第一条的说明 foreach:第一次 foreach 是循环的句子,所以我需要把所有处理过的值都返回到 $splited_sentences 阵列。

foreach ($splited_sentences as $sentence_key => $sentence_value) {
  $html_dom = Html::load($sentence_value);
    $xpath = new DOMXPath($html_dom);

    foreach ($xpath->query('//span[not(@id) and not(@class)]') as $element_key => $element) {
      // Not working Idea, all commented code is just idea to represent needed outcome:
      // $just_text = stip_html($element);
      // $splited_sentences[$sentence_key] = str_replace($element, $just_text);
    }
}
php dom domxpath
1个回答
0
投票

你可以使用 strip_tags()来删除任何 html 标签,尝试以下代码。

foreach ($splited_sentences as $sentence_key => $sentence_value) {
  $html_dom = Html::load($sentence_value);
    $xpath = new DOMXPath($html_dom);

    foreach ($xpath->query('//span[not(@id) and not(@class)]') as $element_key => $element) {
        $just_text = strip_tags ($element);
        $splited_sentences[$sentence_key] = str_replace($element, $just_text);
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.