【问题标题】:How to use multiple arrays in foreach statement with php & xpath如何使用 php & xpath 在 foreach 语句中使用多个数组
【发布时间】:2014-02-19 06:03:51
【问题描述】:

我需要从 xpath 查询返回多个值,如下面的代码所示。我有一个 XML 文件和其中的简单值。我将使用 PHP 中的 XPath 从 XML 中获取帐户名称和电子邮件地址值,并且需要将它们作为逗号分隔值回显。所以使用下面的代码,结果将是:

Company A,mail@company-a.com
Company B,mail@company-b.com

这是我的代码:

<?php
  $XMLfile = "test.xml";
  $a = 'result/Accounts/row/FL[@val="Account Name"]';
  $e = 'result/Accounts/row/FL[@val="E-mail Address"]';

  $xml = simplexml_load_file($XMLfile);
  $result = $xml->xpath($a);
  $result2 = $xml->xpath($e);
  foreach ($result as $le_result)
  echo $le_result."<br>";
?>

并且“test.xml”包含:

<?xml version="1.0" encoding="UTF-8"?>
<result>
<Accounts>
    <row>
        <FL val="Account Name">
            Company A
        </FL>
        <FL val="E-mail Address">
            mail@company-a.com
        </FL>
    </row>
    <row>
        <FL val="Account Name">
            Company B
        </FL>
        <FL val="E-mail Address">
            mail@company-b.com
        </FL>
    </row>
</Accounts>
</result>

【问题讨论】:

    标签: php xml xpath foreach


    【解决方案1】:

    查询&lt;row&gt; 元素可能更容易,
    然后通过$row-&gt;FL[0] 访问名称并通过$row-&gt;FL[1] 访问电子邮件

    $a = '//result/Accounts/row';
    
    foreach ($xml->xpath($a) as $row){
        echo sprintf(
          "%s, %s<br>",
          $row->FL[0],  //name
          $row->FL[1]   //email
        );
    }
    

    【讨论】:

      猜你喜欢
      • 2023-03-30
      • 2017-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-22
      • 1970-01-01
      • 2012-09-09
      • 1970-01-01
      相关资源
      最近更新 更多