PHP 似乎不能很好地处理 XML 字符串


PHP Does Not Seem To Play Nicely With An XML String?

>我正在创建一个应用程序,其中用户在画布上绘制形状,然后从数据库中保存和检索它们。保存部分工作正常,但现在,我正在尝试加载此XML内容,这就是麻烦开始的地方。

首先,

用户有一个他们创建的文档列表,当单击它时,它将该文档加载到应用程序中以执行此操作,我使用以下代码,首先是一个javascript函数,它获取文档的ID,然后将其发送到PHP脚本,该脚本从数据库中检索该文档数据。PHP 脚本将该文档数据加载到$_SESSION['data']变量中。完成后,它将返回到将用户重定向到应用程序页面的javascript函数。

function loadDocument(docID){
    $.ajax({
        url: "load_a_document.php",
        type: "POST",     
        data: { 
            documentID: docID,
        }, 
        success: function(data) 
        {
            alert(data); //THIS DISPLAYS THE XML WITH NO PROBLEMS???
            window.location = "application.php";
        }      
    });
};

PHP 查询数据库并检索文档的名称和 XML 内容,然后执行以下操作:

$_SESSION['document_Name'] = $doc_NAME;
$_SESSION['document_XML'] = $doc_DATA;
echo($_SESSION['document_XML']); //this is 'data' on the ajax success call

现在,当PHP完成时,它会回显php上下文,这显示在AJAX的成功:{}的警告框中,没有问题。现在它将用户带到实际的应用程序,该应用程序的开头如下所示:

<?php 
session_start();
$document_Name = $_SESSION['document_Name'];
$document_Data = $_SESSION['document_XML'];
?>
<script>
    alert(" <?php echo $document_Name; ?> "); //WORKS FINE
    alert(" <?php echo $_SESSION['document_Name']; ?> ") //WORKS FINE
    //alert(" <?php echo $document_Data; ?> "); //STOPS THE PAGE LOADING
    //alert(" <?php echo $_SESSION['document_XML']; ?> ") //STOPS THE PAGE LOADING
</script>

获取前两项,没有问题,一旦XML数据被打印机打印,那么就存在真正的问题。我不明白为什么loadDiagram()可以alert () XML,而我的应用程序页面不能。数据是否以某种方式损坏?

感谢您的任何反馈。

字符串中可能有引号导致问题。尝试

alert(<?php echo json_encode($document_Data) ?>);