2011-07-11 22 views
1

にこのスニペットを渡すために、私はこのコードのスニペットがありますどのように機能

XMLツリーの一部のノードを表し
$xml->items->item 

を...私は木のこの表現を渡すことができるようにしたいです私は共通の関数でわずかに異なるxmlツリーを処理することができます。問題は、私はそれを渡す方法がわからない...私は文字列としてそれを渡して、私はそれを渡している関数内でそれをunserializingしようとしたが、それは動作しません....任意のアイデアですか?

答えて

1

は、たぶん私はポイントを逃していますが、「私は、共通の関数に木のこの表現を渡すことができるようにしたい」 - その後、単にそれを通過しない...

<?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] 
+0

あなたは何も欠けていませんでしたが、私はそれを試したと確信しています、それは最初にエラーが発生しました。 –

0

$xml->items->item->nodeValueとして渡してみましたか? 私はこれをphp.netから得ました。

1

$xml->itemsと "item"という文字列を渡します。次に、各アイテムについて、「アイテム」プロパティを解析します。

関連する問題