我有以下的html,我使用php的DomDocument
類來獲取腳本標記旁邊id爲'nextPageBtn'的元素。問題是我的查詢不會返回任何東西(就像沒有指定id的元素一樣)。繼承人我解析的HTML。得到一個元素使用php DomDocument
<body>
<div style='float:left'><img src='../../../../includes/ph1.jpg'></div>
<label style='width: 476px; height: 40px; position: absolute;top:100px; left: 40px; z-index: 2; background-color: rgb(255, 255, 255);; background-color: transparent' >
<font size="4">1a. Nice to meet you!</font>
</label>
<img src='ENG_L1_C1_P0_1.jpg' style='width: 700px; height: 540px; position: absolute;top:140px; left: 40px; z-index: 1;' />
<script type='text/javascript'>
swfobject.registerObject('FlashID');
</script>
<input type="image" id="nextPageBtn" src="../../../../includes/ph4.gif" style="position: absolute; top: 40px; left: 795px; ">
</body>
和繼承人的PHP代碼來解析它。
$doc->loadHTMLFile($path);
$doc->encoding='UTF-8';
$x = new DOMXPath($doc);
$nextPage=$x->query("//*[@id='nextPageBtn']")->item(0);
if($nextPage)
{
echo 'found it..';
}
我認爲「線swfobject.registerObject(」 FlashID「)」被產生某種其避免了元件的錯誤被發現?
您的xpath表達式乍看起來看起來有效。 - 還有其他代碼。無法重現:http://codepad.viper-7.com/RUNGOd - 可能是你看錯了地方。 '$ doc-> encoding ='UTF-8';'對我來說看起來是多餘的。 – hakre 2011-12-19 11:29:04
如果你能夠編輯你正在處理的文件的標記,我會建議給你想要抓取的元素添加一個ID,然後getElementById()它。 – GordonM 2011-12-19 11:33:38
@GordonM說:如果XHTML有一個[DTD](http://en.wikipedia.org/wiki/Document_Type_Definition),它指定了[ID屬性](http://www.theukwebdesigncompany.com/articles/xml) -id-idref-dtd.php),'getElementById'工作。 – hakre 2011-12-19 11:43:07