2011-02-17 41 views

回答

2

我遇到了這個問題與PHP的DOMDoc和XSL功能。您基本上必須將文檔加載爲XML。這是我得到<video>標籤正常工作的唯一方法。

更新: 您也可以嘗試,只要$doc->resolveExternals = true添加元素&實體的<!DOCTYPE html5 >

+0

但是,我必須只使用格式良好的XML。 :/ – Hamster 2011-02-17 19:43:14

1

我不知道你是否已經嘗試了庫最終指出了這樣的回答:

DOM parser that allows HTML5-style </ in <script> tag

Html5lib解決您遇到了我同樣的問題(這是<aside><nav>標籤觸發我的問題)

我正在使用它來解析html片段,其優點是它是一個DOMDocument的替代替代品,因爲目前它使用DOMDocument作爲輸出對象,所以沒有其他功能被打破我的實施。

在文檔中有一個說明,他們希望將來不再使用DOMDocument。

html5lib爲PHP可以在這裏找到: http://code.google.com/p/html5lib/downloads/detail?name=html5lib-php-0.1.tar.gz&can=2&q=

answer linked to above,也有使用情況的詳細信息。

1

嘗試忽略錯誤:

在我的情況,我有幾個「小部件」,其中作爲模板的幾個文件。例如: template_header.html template_footer.html

<?php 
//Load header 
$dom = new DOMDocument(); 
@$dom->loadHTMLFile('template_header.html'); 
$xpath = new DOMXpath($dom); 
$nodelist = $xpath->query('div[class="template-widget"]'); 
foreach($nodelist as $node){ 
    echo $dom->saveHTML($node); 
} 
?> 

注意$ dom-> loadhtmlfile具有和 '@' 到ognore錯誤。