Nasıl SimpleXML kullanarak 'eleman-name' gibi isimlerle öğeleri başvuru yapabilirsiniz

2 Cevap php

Nasıl böyle bir XML belgesini ayrıştırmak:

<feed>
  <item>
    <element-name>Element value</element-name>
  </item>
</feed>

Ben aşağıdakileri deneyin, bu işe yaramazsa:

$xmlObject = simplexml_load_string($xmlString);

foreach($xmlObject->item as $item) {
    $elementName= $item->element-name; // Obviously doesn't work.
}

Ben denedim:

$item->element_name;
$item->elementname;
$item->elementName;

Hiçbiri iş. Nasıl bu öğenin değerini erişebilirim?

2 Cevap

Böyle bir şey kullanabilirsiniz:

$name = "element-name";
$item->{$name};

Denemek ve tire / tire ile o eleman düğümleri geçerken simplexml_load_string onu sevmiyor (-).

Burada iki seçeneğiniz var.

Kaşlı ile eleman adını saklanması ({}):

$elementName = $item->{'element-name'};

Yoksa dışarı yerine bir değişkene çevirmek:

$elementNameNode = 'element-name';
$elementName = $item->$elementNameNode;