php
  • html
  • dom
  • getelementbyid
  • 2014-10-28 29 views 0 likes 
    0

    如何從導入的節點檢索ID? 它可能與原始的XML內容,但如果我導入一些數據,我不能通過ID訪問它。GetElementById來自導入節點

    $test = ' 
    <!DOCTYPE html> 
    <html> 
        <head/> 
        <body> 
         <div id="test"></div> 
        </body> 
    </html>'; 
    
    
    $test2 = '<div id="test2">test</div>'; 
    
    $dom = new DOMDocument(); 
    $dom2 = new DOMDocument(); 
    
    $dom->loadHTML($test); 
    $dom2->loadXML($test2); 
    
    $element2 = $dom2->documentElement; 
    
    $import = $dom->importNode($element2, true); 
    
    $element = $dom->getElementsByTagName('html')->item(0); 
    $element->appendChild($import); 
    
    var_dump($dom->getElementById('test')); 
    var_dump($dom->getElementById('test2')); 
    

    這是有可能找到測試,但沒有找到這來了由導入的元素TEST2。

    這是xml輸出。導入工作。

    <?xml version="1.0" standalone="yes"?> 
    <!DOCTYPE html> 
    <html> 
        <head></head> 
        <body> 
         <div id="test"></div> 
        </body> 
        <div id="test2">test</div> 
    </html> 
    
    +0

    我不確定importNode如何行爲,因爲沒有明確的信息表明您實際上想要插入element2節點。嘗試在$ test2的div周圍添加body標籤,這樣importNode會(可能)理解你想要在那裏導入它。 – Sebas 2014-10-28 19:32:43

    +0

    我編輯了我的帖子。導入工作正常,但如果我嘗試通過test2獲取一些數據,它將返回null。 – Jayni 2014-10-28 19:38:11

    +0

    嘗試我所建議的。 – Sebas 2014-10-28 19:45:15

    回答

    0

    解決! 我不得不添加這個。

    <!DOCTYPE html_fragment 
        <!ATTLIST div id ID #IMPLIED> 
    ]> 
    
    相關問題