2009-11-02 48 views
0

我将如何检索这些XML标签在PHP中的内容?PHP XML:如何使用PHP显示XML

我可以在标签内没有':'的情况下使用它。但对于这一点,似乎并没有工作:

$description = $item->getElementsByTagName('desc'); 
$description = $description->item(0)->firstChild->nodeValue; 


<sql:time>21:00</sql:time> 
<sql:event> Empty </sql:event> 
<sql:desc>This field is empty</sql:desc> 

感谢

回答

2

另外,您可以使用XPath ......

$xp = new DOMXpath($dom); 

$xpath->registerNamespace('sql', "http://URI"); 

$xpath_str = '//sql:desc/text()'; 

$titles = $xpath->evaluate($xpath_str); 

print $titles->item(0)->nodeValue ."\n"; 

(假设我没有犯任何错误,我可能有..)

http://www.php.net/manual/en/domxpath.registernamespace.php

2

使用功能的namespace equvilant你目前正在使用:

元素名称的冒号deneotes命名空间是中。通过调用随着时间:所以你会得到了SQL的信息

$description = $item->getElementsByTagNameNS('sql', 'time'); 
+0

我试过了,它没有工作。这可能是因为它的父标签只是一个常规标签吗?并即时运行一个foreach循环周围 – Stephen 2009-11-02 21:17:38

+0

有可能在XML文档中没有正确定义名称空间,因此它在dom中不可用。有关如何添加命名空间,请参阅http://us2.php.net/manual/en/domdocument.createattributens.php。 – 2009-11-02 21:24:16