Php 如何将此代码段传递给函数

Php 如何将此代码段传递给函数,php,simplexml,Php,Simplexml,我有一段代码: $xml->items->item 它表示xml树的一些节点…我希望能够将树的这种表示形式传递给一个公共函数,这样我就可以用一个公共函数处理稍微不同的xml树。问题是我不确定如何传递它…我尝试过将其作为字符串传递,然后在传递给的函数中取消序列化,但没有效果…有什么想法吗?您尝试过将其作为$xml->items->item->nodeValue传递吗? 我是从。传递$xml->items和字符串“item”得到的。然后,为每个项解析“item”属性。也许我没有抓住要点

我有一段代码:

$xml->items->item

它表示xml树的一些节点…我希望能够将树的这种表示形式传递给一个公共函数,这样我就可以用一个公共函数处理稍微不同的xml树。问题是我不确定如何传递它…我尝试过将其作为字符串传递,然后在传递给的函数中取消序列化,但没有效果…有什么想法吗?

您尝试过将其作为
$xml->items->item->nodeValue
传递吗?
我是从。

传递
$xml->items
和字符串“item”得到的。然后,为每个项解析“item”属性。

也许我没有抓住要点,但“我希望能够将树的表示形式传递给一个公共函数”——然后只需传递它

<?php
function foo(SimpleXMLElement $r) {
  foreach( $r as $e ) {
    printf('[%s; %s; %s] ', $e->x, $e->y, $e->z);
  }
  echo "\n";
}


$xml = getDoc();
// the <a><b> subtree
foo($xml->b->items->item);
echo "---------------------\n";
// same function for the the <a><c> subtree
foo($xml->c->items->item);

function getDoc() {
  return new SimpleXMLElement( <<< eox
<a>
  <b>
    <items>
      <item><x>10</x><y>11</y><z>12</z></item>
      <item><x>20</x><y>21</y><z>22</z></item>
    </items>
  </b>
  <c>
    <items>
      <item><x>99</x><y>98</y><z>97</z></item>
      <item><x>96</x><y>95</y><z>94</z></item>
    </items>
  </c>
</a>
eox
  );

不,你没有遗漏任何东西,但我确信我试过了,第一次就出错了。
[10; 11; 12] [20; 21; 22] 
---------------------
[99; 98; 97] [96; 95; 94]