2011-07-26 116 views
1

我實際上對這些XML的東西是新的。我使用http://www.php.net/manual/en/intro.dom.phpPHP檢索XML標記名稱

所以這裏的問題是關於理解DOM文檔,和的DOMNodeList等東西..

http://jobhits.co.uk/services/rss?k=job

進料上方返回的XML文檔。我可以用這些代碼

$doc->load('http://jobhits.co.uk/services/rss?k=job'); 
$items = $doc->getElementsByTagName("item"); 

foreach($items as $item){ 
    $titles[] = $item->getElementsByTagName("title"); 
} 

問題是有成功檢索像標題,描述和鏈接標籤名稱一定「標記名狀」該文件

<a10:updated></a10:updated> 

我試圖獲得在使用

$update[] = $item->getElementsByTagName("a10:updated"); 

..這是失敗

這裏是一個示例XML http://piratelufi.com/ark/gettagname.xml,或者您可以使用字符串load方法裏面:)

以上BTW我不能使用的SimpleXML和預定義的類儘可能 感謝:d

+0

更早:[如何讀取< abc: xyz > xml標記使用php?](http://stackoverflow.com/q/3130605/367456) – hakre

回答

2

您正在尋找getElementsByTagNameNS

+0

失敗問題猜測我還沒有讀得很好。非常感謝你:) – kapitanluffy

+0

嗯,名稱空間是任何人遇到的默認問題,當剛開始使用XML/DOM,你是在好公司:) – Wrikken

2

a10 jsut表示更新的元素來自不同的名稱空間。冒號:在這方面是一個特殊字符。 在您的示例x​​ml(後一個url)的開始處,可以找到此名稱空間的定義:<rss xmlns:a10="http://www.w3.org/2005/Atom" version="2.0">。 因此您需要getElementsByTagNameNS。我認爲沿着以下方向:getElementsByTagNameNS("http://www.w3.org/2005/Atom","updated")可能會有所幫助。

+0

很好解釋我會把這一個。所以這是XML xD中的命名空間謝謝 – kapitanluffy