2010-04-25 44 views
4

我有一个需要在PHP中解析的XML文件。我currenlty使用使用simplexml_load_file加载像这样的文件:使用foreach解析XML子项()

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

内部的XML文件所在的结构是这样的:

<?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> 

我所试图做的是打印的<name>内容以及每个<feature>元素在<features>内。我不知道如何做到这一点,因为有超过1个元素称为<feature>。任何帮助是极大的赞赏。

回答

10

打印文本,试试这个:

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

完美的作品,谢谢。 – user 2010-04-25 05:44:20

0

你可以这样做:

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

使用simplexml_load_file()返回一个对象。

看一看结构用的var_dump($ XML):

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" 
    } 
    } 
} 

所以这样的代码:

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

会产生输出,如:

Project 1 
    Feature 1 
    Feature 2 
    Feature 3 
    Feature 4 

哪个我想你以后,或多或少。