2011-12-13 6 views
0

계약서 마지막 웹 서비스 (선택 사항 아님) 용 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> 

이 일을 업 해킹 방법입니다,하지만 난 공급 업체가이에 잠겨했습니다. 나는 이것을 어떻게하는지 정말로 모른다. 도움을 주신 분들께 미리 감사드립니다.

또한 예

그냥 명확하게하기 위해, 여기에 예입니다.

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> 

작은 배열은 다음과 같습니다

generateXml(array(a,b)); 

이 출력 것 :

<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

하나의 XML 문서에 여러 보증 요소가 있어야합니다. 의미는 배열 (a, b)를 함수에 전달하면 와 a와 b 둘 다에있는 모든 것을 의미합니다. 유일한 차이점은 그들의 가치입니다. –

+0

그래. 나는 갱신 할 것이다. –

+0

업데이트 됨. 지금까지 도와 주셔서 감사합니다. leenix –

관련 문제