Skip to content
Advertisement

Get elements by tag name starting with string in PHP

I need to get all tag elements in PHP that are starting with a certain string, similar to this:

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

    return json_encode( $length );

Of course, the above is not working. Any pointers to the right direction would be greatly appreciated, thanks!

Advertisement

Answer

Following the suggestions, this has worked for me:

    $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 ) );
User contributions licensed under: CC BY-SA
2 People found this is helpful
Advertisement