การใช้นิพจน์ Xpath และตรวจสอบจำนวนองค์ประกอบ

ฉันกำลังขูดตารางด้วย Xpath และจับคู่ TR's tds แต่ปัญหาในสถานการณ์นี้ TR บางตัวมี td หนึ่งอัน ดังนั้นฉันต้องกำจัดสิ่งเหล่านั้นทิ้ง แต่ด้วยการกำจัดนั้น ฉันประสบปัญหาเงียบๆ

ตัวอย่างเช่น:

    $getTR = $path->query("//table[@class='bgc_line']/tr");
    foreach($getTR as $tr){
        if ($tr->length == 2) {
            $route = $path>query("//table[@class='bgc_line']/tr/td[1]");
            foreach ($route as $td1) {
                $property[] = trim($td1->nodeValue);
            }

            $route = $path->query("//table[@class='bgc_line']/tr/td[2]");
            foreach ($route as $td2) {
                $value[] = trim($td2->nodeValue);
            }
        }
    }

ดังนั้นการใช้ if ของฉันจึงไม่ถูกต้องนัก แต่มีวิธีอื่นในการทำเช่นนี้หรือไม่? เพราะว่าฉันมีสองสำนวนและการนับของ Xpath ตัวแรกนั้นแตกต่างไปจากตัวที่สอง นั่นเป็นสาเหตุที่ฉันไม่สามารถจับคู่ข้อมูลซึ่งกันและกันได้ คุณสามารถดูตารางได้ที่นี่


person Community    schedule 09.12.2018    source แหล่งที่มา


คำตอบ (1)


คุณสามารถใช้ได้

table[@class='bgc_line']/tr[count(td) > 1]

หากต้องการรับแถวของตารางเฉพาะเมื่อมีลูกมากกว่าหนึ่งคน td

person Andersson    schedule 09.12.2018