【问题标题】:Parse XML subitems using foreach()使用 foreach() 解析 XML 子项
【发布时间】:2011-02-12 00:14:19
【问题描述】:

我有一个需要在 PHP 中解析的 XML 文件。我现在使用 simplexml_load_file 来加载文件,如下所示:

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

我要做的是打印&lt;name&gt; 内容以及&lt;features&gt; 中的每个&lt;feature&gt; 元素。我不确定如何执行此操作,因为有不止 1 个名为 &lt;feature&gt; 的元素。非常感谢任何帮助。

【问题讨论】:

    标签: php xml foreach


    【解决方案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
    

    我认为你或多或少会追求什么。

    【讨论】:

      【解决方案2】:

      你可以这样做:

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

      【讨论】:

        【解决方案3】:

        要打印文本,试试这个:

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

        【讨论】:

          猜你喜欢
          • 2016-12-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-08-12
          • 2015-02-26
          • 2023-03-20
          相关资源
          最近更新 更多