2011-12-13 14 views
0

私は契約の最後のWebサービス(私の選択ではない)のXMLを生成する関数を持っています。配列内の項目数に応じてXMLを動的に出力する

public function generateXml($endorsements) 
    { 
    $xmlstr = ' 
    <?xml version="1.0" encoding="utf-8" ?> 
     <is:CaptureRQ xmlns:dg="urn:digimarc.com:SchemaTypes" DataVersion="1.6" XsdSchemaValidatable="true" xmlns:is="urn:digimarc.com:imaging"> 
     <is:Endorsements> 
     <is:Code> 
     <dg:Value>'.$endorsements.'</dg:Value> 
     </is:Code> 
     </is:Endorsements> 
     </is:CaptureRQ>'; 
    return $xmlstr; 
    } 

事は、$endorsements変数は配列です。すべての項目について、私は新しい要素を作成する必要が配列で:

<is:Endorsements> 
     <is:Code> 
      <dg:Value>'.$endorsements.'</dg:Value> 
     </is:Code> 
</is:Endorsements> 

私はTHSを知っている物事のアップハッキング方法ですが、私はベンダーによって、このにロックされてきました。私は本当にこれを行う方法がわかりません。事前にお手数をおかけしていただきありがとうございます。

だけで明確にする例

さらに、ここでの例です。

generateXml(array(a,b,c)); 

なり出力:

<is:Endorsements> 
    <is:Code> 
    <dg:Value>a</dg:Value> 
    </is:Code> 
</is:Endorsements> 
<is:Endorsements> 
    <is:Code> 
    <dg:Value>b</dg:Value> 
    </is:Code> 
</is:Endorsements> 
<is:Endorsements> 
    <is:Code> 
    <dg:Value>c</dg:Value> 
    </is:Code> 
</is:Endorsements> 

小さい配列は次のようになります。

​​

これは出力になります。

<is:Endorsements> 
    <is:Code> 
    <dg:Value>a</dg:Value> 
    </is:Code> 
</is:Endorsements> 
<is:Endorsements> 
    <is:Code> 
    <dg:Value>b</dg:Value> 
    </is:Code> 
</is:Endorsements> 
+1

ループについてはどうですか? – netcoder

答えて

2

ハウズこれを?

public function generateXml($endorsements) { 

foreach((array)$endorsements as $endorsement) { 
    $endorsementsXML[] = ' 
    <is:Endorsements> 
    <is:Code> 
    <dg:Value>'.$endorsement.'</dg:Value> 
    </is:Code> 
    </is:Endorsements> 
    '; 
} 

return ' 
<?xml version="1.0" encoding="utf-8" ?> 
<is:CaptureRQ xmlns:dg="urn:digimarc.com:SchemaTypes" DataVersion="1.6"    XsdSchemaValidatable="true" xmlns:is="urn:digimarc.com:imaging"> 

'.implode("\n", (array)$endorsementsXML).' 

</is:CaptureRQ>'; 

} 
+0

1つのxml文書に複数の裏書き要素が必要です。意味は、配列(a、b)を関数に渡すと、とaとbの間のすべてのものが得られます。唯一の違いはその価値です。 –

+0

確かです。私は更新します。 –

+0

が更新されました。これまでのご協力ありがとうございます。leenix –

関連する問題