Skip to content

Incorrect parsing nesting #9

@gzhegow1991

Description

@gzhegow1991
        $dom = Document::loadHtml(''
            . '<ul class="a">'
            /**/ . '<li>a1</li>'
            /**/ . '<li>'
            /****/ . '<ul class="b">'
            /******/ . '<li>b1</li>'
            /******/ . '<li>b2</li>'
            /****/ . '</ul>'
            /**/ . '</li>'
            /**/ . '<li>a2</li>'
            /**/ . '<li>'
            /****/ . '<ul class="b">'
            /******/ . '<li>b3</li>'
            /******/ . '<li>b4</li>'
            /****/ . '</ul>'
            /**/ . '</li>'
            . '</ul>'
        );

        echo count($dom->find('ul li')) . PHP_EOL; // 8, ok
        echo count($dom->find('ul > li')) . PHP_EOL; // 8, ok
        echo count($dom->find('ul.a > li')) . PHP_EOL; // 4, ok
        echo count($dom->find('ul.b > li')) . PHP_EOL; // 4, ok


        $dom = Document::loadHtml(''
            . '<ul class="a">'
            /**/ . '<li>a1</li>'
            /**/ . '<li>'
            /* -- `ul` was removed -- */
            /******/ . '<li>b1</li>'
            /******/ . '<li>b2</li>'
            /* -- `ul` was removed -- */
            /**/ . '</li>'
            /**/ . '<li>a2</li>'
            /**/ . '<li>'
            /* -- `ul` was removed -- */
            /******/ . '<li>b3</li>'
            /******/ . '<li>b4</li>'
            /* -- `ul` was removed -- */
            /**/ . '</li>'
            . '</ul>'
        );

        echo count($dom->find('ul li')) . PHP_EOL; // 8, ok
        echo count($dom->find('ul > li')) . PHP_EOL; // 8, what ?
        echo count($dom->find('ul > li > li')) . PHP_EOL; // 0, what ?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions