【问题标题】:Merge multiple xml files to one file using glob使用 glob 将多个 xml 文件合并为一个文件
【发布时间】:2017-08-30 12:03:39
【问题描述】:

我在同一个目录中有三个类似的构建 xml 文件(og 文件的数量会随着时间而改变)。我想在 eny 给定时间的目录中创建一个包含所有 xml 文件的数组,并为此目的使用 glob 函数 - 我可以做到。然后我想遍历这个新合并的 xml 文件 - 但使用下面的代码只能获取后者的文件。不知道怎么回事:

$pastscores = glob('xml/score/*xml');
foreach($pastscores as $output) {
  $pastscore = file_get_contents($output);
}

我的 xml 文件的外观如下所示:

<?xml version="1.0" encoding="utf-8"?>
<ROOT>
  <SECTION>
    <SEASONNO>7</SEASONNO>
  </SECTION>
</ROOT>

<?xml version="1.0" encoding="utf-8"?>
<ROOT>
  <SECTION>
    <SEASONNO>6</SEASONNO>
  </SECTION>
</ROOT>

<?xml version="1.0" encoding="utf-8"?>
<ROOT>
  <SECTION>
    <SEASONNO>5</SEASONNO>
  </SECTION>
</ROOT>

【问题讨论】:

  • $pastscore .= file_get_contents($output); php.net/manual/en/language.operators.string.php
  • 请分享您的预期输出并分享您尝试过的代码。
  • @mr.void 连接将追加&lt;?xml version="1.0" encoding="utf-8"?&gt; 三次。
  • 当然,在这种情况下,他可以检查 foreach 中的索引,如果 index > 0
  • = 之前的小点起到了作用。关于 substr if index > 0。如何做到这一点,因为我不能像现在一样遍历合并的 xml 文件?

标签: php foreach glob


【解决方案1】:

我想我找到了办法。我做了以下

foreach($files as $file) {
  $pastscores = file_get_contents($file);
  $pastscore = new SimpleXMLElement($pastscores);
  foreach ($pastscore->children() as $output) {
    echo '<div class="box3 mix mix'.$output->SEASONNO.'">';
      echo '<p>'.$output->SEASONNO.'</p>';
    echo '</div>';
  }
}

感谢您的所有帮助。 :o)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-28
    • 1970-01-01
    • 1970-01-01
    • 2012-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多