-2

我正在创建一个要通过 HTTP 发送到应用程序的 XML 文件,该应用程序建议以下代码生成格式错误的 XML。

谁能告诉我哪里出错了?

$doc = new DOMDocument();

    // Creating
    $admin = $doc->createElement('AdminRequest');

    // Add to doc
    $doc->appendChild($admin);

    // Creating
    $secretAttr = $doc->createAttribute('secret');
    $secretAttr->value = $this->secret;

    // Append to Admin      
    $admin->appendChild($secretAttr);

    // Creating
    $versionAttr = $doc->createAttribute('version');
    $versionAttr->value = '3.6';

    // Append to admin
    $admin->appendChild($versionAttr);

    // Creating
    $del = $doc->createElement('Delete');

    // Appending to Admin
    $admin->appendChild($del);

    // Creating
    $user = $doc->createElement('User');
    $nameAttr = $doc->createAttribute('name');
    $nameAttr->value = $username;

    // Appending to User
    $user->appendChild($nameAttr);

    // Appending to delete
    $del->appendChild($user);

    // For debugging
    echo $doc->saveXML();

输出如下:

<?xml version="1.0"?>
<AdminRequest secret="secretcode" version="3.6"><Delete><User name="auser"/></Delete></AdminRequest>

我有一种感觉,这与 AdminRequest 与第一个单独的行有关,只是不知道如何将它排成一行。

任何帮助表示赞赏。

谢谢

4

1 回答 1

2

首先,XML 很好。不确定如何将其解释为“格式错误”。换行符不应该影响任何东西。

其次,您确定他们的这种“格式错误”的消息不仅仅是您的 XML 不符合预定义模式的情况吗?

第三,您要发送什么内容类型?应用程序/xml 还是文本/xml?因为我遇到了某些应用程序只接受一个或另一个的问题。

第四,你确定你确实正确地发送了这个 XML 吗?您是否尝试过将其发送到您的开发中的 URL,以便您可以自己解析和验证它?

于 2012-10-25T10:18:24.613 回答