2013-10-21 81 views
0

你好,我有這樣的XML:PHP的XML DOM提取數據

<specs><my>base</my><root>none</root></specs> 
<books> 

    <item> 
    <id>14</id> 
    <title>How to live</title> 
    </item> 

    <item> 
    ... 
    </item> 

</books> 

如何從<提取值我>?然後< title>?

當我有這樣的數據如:<specs><my>base</my><root>none</root></specs>在xml這段代碼適合我。那麼我應該如何修改它來處理數據,比如書籍以及XML呢?

$dom = new DOMDocument(); 
$dom->loadXml($xml); 

$xpath = new DOMXPath($dom); 
$entry = $xpath->query("//xml/specs/my"); 
foreach($entry as $ent){ 
    echo $ent->nodeValue; 
} 
+0

你什麼意思,是通過自己的XML或與您一起?澄清更多...粘貼你想閱讀的確切Xml –

+0

確切的原始XML是第一個XML在我的問題。當我刪除< books >和< /books >之間的所有內容時,此代碼可以正常工作。但與我原來的XML張貼在上面的PHP是行不通的(它不讀取XML) – peter

+0

您的XML不是非標準的,它只是無效(或不完整)。此外,還不清楚在你的案例中,作爲一本書的資格。 – hakre

回答

1

只是我添加了這個:

$xml="<xml>".$xml."</xml>"; 

現在這個工作$xpath->query("//xml/specs/my");以及$xpath->query("//xml/books/item");