循环访问 SimpleXML 数组并将项目打印到单独的文本文件中


Iterate over SimpleXMLElement array and print items to separate text files

所以我遇到了一个可能简单的问题。我有一个 SimpleXMLElement 对象数组(PDF 数据字节)。我正在尝试遍历我的数组并让代码写出 PDF 的每个块数据字节到单个文本文件,以便我可以将它们写入单个 PDF 文件。我的代码如下:

$docfiles = $xml->EnvelopeStatus->EnvelopeID . "/" . $xml->EnvelopeStatus->DocumentStatuses->DocumentStatus->Name . '.txt';
$doctxt = fopen($docfiles,"w");
$docarr = array();
foreach($xml->DocumentPDFs->DocumentPDF as $post){
    foreach ($post->PDFBytes as $docusigntxt) {
        $docarr[] = $docusigntxt;
        foreach ($docarr as $value) {
            fwrite($doctxt,$value);
        }
    }
}
fclose($doctxt);

我做错了什么?任何建议将不胜感激。

如果您还没有这样做,可能值得查看 GitHub 上提供的 DocuSign SOAP API 示例代码:https://github.com/docusign/DocuSign-eSignature-SDK。 您要完成的任务非常简单 - 我想GitHub存储库中的PHP文件夹将包含一个代码片段,向您展示如何实现目标。

这只是了解如何正确向下钻取 SimpleXML 语法的一个案例。这就是解决我的问题的原因。我跳过了创建文本文件并创建了PDF,这就是我想要的:

foreach($xml->DocumentPDFs->DocumentPDF as $value) {
    $binary = base64_decode($value->PDFBytes);
    file_put_contents($xml->EnvelopeStatus->EnvelopeID . "/" . $value->Name, $binary);
}

就是这样。

相关文章: