Değerleri hakkında: tüm rdf almak için RDF XML dosyasını ayrıştırma

1 Cevap php

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?

1 Cevap

Ö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ı: