Ben bir RDF xml dosyasını ayrıştırmak için php basit xml ve XPath'i kullanıyorum ve tüm RDF bir listesini almak için mücadele ediyorum: değerleri hakkında.
Herhangi bir tavsiye?
Önce PHP5.3 bağlıyor alanlı ile SimpleXML kullanırken bir sorun var gibi görünüyor. Bir XML elemanına bir nesne özelliği dönüştürülür Temelde, bir şey ile :
atılır. Aşağıdaki yapmak, ama benim için hackish olacaktır:
$rdf = str_replace('rdf:about', 'rdf_about', $rdf);
$rdf = new SimpleXMLElement($rdf);
foreach($rdf->xpath('//@rdf_about') as $node) {
echo $node, PHP_EOL;
}
Buraya bakın:
Yerine SimpleXML arasında DOM kullanabilirsiniz:
$dom = new DomDocument;
$dom->loadXml($rdf);
$xph = new DOMXPath($dom);
$xph->registerNamespace('rdf', "http://www.w3.org/1999/02/22-rdf-syntax-ns#");
foreach($xph->query('//@rdf:about') as $attribute) {
echo $attribute->value, PHP_EOL;
}
Ama SimpleXML veya DOM üzerinden bunun için özel bir kütüphane kullanmanızı öneririz:
Ve burada ayrıştırıcıları hakkında bir blog yazısı: