【发布时间】:2012-04-08 20:24:56
【问题描述】:
鉴于下面采用from the W3C 网站的 XML/RDF 示例,我如何访问“cd”命名空间中的值?
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cd="http://www.recshop.fake/cd#">
<rdf:Description
rdf:about="http://www.recshop.fake/cd/Empire Burlesque">
<cd:artist>Bob Dylan</cd:artist>
<cd:country>USA</cd:country>
<cd:company>Columbia</cd:company>
<cd:price>10.90</cd:price>
<cd:year>1985</cd:year>
</rdf:Description>
</rdf:RDF>
我尝试过以下操作:
$XML = new SimpleXMLElement($rawXML); // Assume $rawXML is the quoted XML/RDF above
foreach($xml as $entry){
$cd = $entry->children('http://www.recshop.fake/cd#');
echo $cd->artist;
echo $cd->$country;
...
}
我也试过这样做:
$XML = new SimpleXMLElement($rawXML); // Assume $rawXML is the quoted XML/RDF above
foreach($xml as $entry){
$cd = $entry->children('http://www.recshop.fake/cd#');
$rdf = $entry->children('http://www.w3.org/1999/02/22-rdf-syntax-ns#');
echo $rdf->$cd->artist;
echo $rdf->$cd->$country;
...
}
另外,在 PHP 中,如果不是声明 xmlns:cd="http://www.recshop.fake/cd#" 而是声明 xmlns="http://www.recshop.fake/cd#" 并且从 <cd:artist> 中删除“cd”命名空间等,是否有必要做任何不同的事情。
【问题讨论】:
标签: php xml rdf semantic-web semantic-markup