【问题标题】:Get elements by tag name starting with string in PHPPHP中以字符串开头的标签名称获取元素
【发布时间】:2021-02-05 09:50:45
【问题描述】:

我需要获取 PHP 中所有以某个字符串开头的标签元素,类似于:

    $dom = new DOMDocument();
    $dom->loadHTML( $content );
    $domPre = $dom->getElementsByTagName( 'spx-' );
    $length = $domPre->length;

    return json_encode( $length );

当然,以上行不通。任何指向正确方向的指针将不胜感激,谢谢!

【问题讨论】:

标签: php html dom


【解决方案1】:

按照建议,这对我有用:

    $dom = new DOMDocument();
    $dom->loadHTML( $content );
    $xp    = new DOMXPath( $dom );
    $array = [];

    foreach ( $xp->query( "//*[contains(local-name(),'spx')]" ) as $node ) {
        array_push( $array, $dom->saveXML( $node ), "\n" );
    }

    return json_encode( count( $array ) );

【讨论】:

  • starts-with 会更好
  • xpath-> 查询返回一个 nodeList 对象。使用 $nodeList-> length 您可以获得元素的数量。要获取 DOMElements 数组,您可以使用 iterator_to_array ($nodeList)。
猜你喜欢
  • 2016-03-05
  • 2010-12-22
  • 1970-01-01
  • 2013-08-12
  • 2016-12-04
  • 1970-01-01
  • 2015-07-04
  • 2012-03-16
  • 1970-01-01
相关资源
最近更新 更多