1
我需要使用XML中的名稱空間來處理代碼,並對其進行處理。例如:在XML上使用名稱空間
<system:include file="./test.php" cache="true" />
這將是內容的最終輸出,但需要處理特殊標籤(如system:include
)前發送到客戶端。
因此,我將獲得最終輸出的所有元素,以搜索大約命名空間標記或特定標記。問題是,如果我使用DOMDocument
並像XML一樣讀取,則在命名空間聲明(Namespace prefix system on include is not defined in Entity
)中遇到一些問題。
我的測試代碼:
<?php
$document = new DOMDocument();
$document->loadXML('
<system:include file="./test.php" cache="true" />
');
foreach($document->childNodes as $node) {
var_dump($node->nodeName);
}
?>
我需要做,因爲我需要處理一些特殊的標籤並將其轉換爲真正的HTML。例如:將<b>
轉換爲<strong>
(只是一個例子!)或者做一些更好的事情,比如使用標籤包含和緩存特定頁面。
又如:
<h7>Hello World!</h7>
轉換爲:
<div class="h7">Hello World!</div>
注:的ob
內容將被髮送給將通過這個特殊的標籤搜索特定的方法。所以我不知道我是否可以在之前聲明命名空間(可能會很難,也可能很慢)。
再見!
好...但如果我不知道命名空間是什麼?因爲我可以有'X'命名空間,我不知道每個命名空間的名稱。只是一個幫助...如果它不可能我認爲我知道我可以做什麼... – 2012-03-12 23:58:38
我不知道如何使DOMDocument解析具有未知命名空間的XML文檔,而不會警告它們。你可以用$ doc-> loadXML('...',LIBXML_NOERROR)來抑制錯誤。 – Martin 2012-03-13 00:07:00