2013-10-21 80 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");