Foreach kullanarak XML subitems ayrıştırmak ()

3 Cevap php

PHP ayrıştırma gerektiren bir XML dosyası var. Ben currenlty şöyle dosyayı yüklemek için simplexml_load_file kullanıyorum:

$xml = simplexml_load_file('Project.xml');

XML dosyası içindeki böyle bir yapı yatıyor:

<?xml version="1.0" encoding="ISO-8859-1"?>
<project>
<name>Project 1</name>
<features>
    <feature>Feature 1</feature>
    <feature>Feature 2</feature>
    <feature>Feature 3</feature>
    <feature>Feature 4</feature>
</features>
</project>

Ne yapmaya çalışıyorum <features> içindeki HER <feature> elemanı ile birlikte <name> içeriği yazdırmak olduğunu. <feature> adlandırılan 1'den fazla unsur var, çünkü bunu nasıl emin değilim. Herhangi bir yardım büyük beğeni topluyor.

3 Cevap

metin yazdırmak için, bu deneyin:

foreach($xml->features->feature as $key => $value)
{
    echo $value;
}

Sen yapabilirsin:

foreach($xml->features->feature as $f) {
    echo $f."\n";
}

simplexml_load_file () bir nesne döndürür.

Var_dump ($ xml) ile yapısına bir göz atalım:

object(SimpleXMLElement)#1 (2) {
  ["name"]=>
  string(9) "Project 1"
  ["features"]=>
  object(SimpleXMLElement)#2 (1) {
    ["feature"]=>
    array(4) {
      [0]=>
      string(9) "Feature 1"
      [1]=>
      string(9) "Feature 2"
      [2]=>
      string(9) "Feature 3"
      [3]=>
      string(9) "Feature 4"
    }
  }
}

Yani bu gibi bir kod:

<?PHP
$xml = simplexml_load_file('test.xml');
echo $xml->name . "\n";
foreach($xml->features->feature as $f){
  echo "\t$f\n";
}

: Gibi çıktı üretecek

Project 1
    Feature 1
    Feature 2
    Feature 3
    Feature 4

Ben sonra olduğunuz varsayalım ne olduğu, daha fazla ya da daha az.