从AWS DynamoDB检索PHP页面中的数据中删除XML标记
勾勒出一个PHP页面,从DynamoDB表中提取数据。页面提取一个包含XML数据的字段,从AWS DynamoDB检索PHP页面中的数据中删除XML标记,php,amazon-web-services,amazon-dynamodb,Php,Amazon Web Services,Amazon Dynamodb,勾勒出一个PHP页面,从DynamoDB表中提取数据。页面提取一个包含XML数据的字段,submissionMessageSent,并显示两次 第一次出现:看起来像是缺少XML标记的数据 第二次出现:看起来像是带有XML标记的数据 在两次出现之间,该变量不会由页面中的代码更新。数据与标签一起存储在Dynamo中,作为一个大的旧字符串 为什么XML标记在一种情况下被剥离,而在另一种情况下却没有被剥离 望远镜 XML呈现为HTML,webbrowser将忽略它们。可以在文本区域中看到它们,
submissionMessageSent
,并显示两次
- 第一次出现:看起来像是缺少XML标记的数据
- 第二次出现:看起来像是带有XML标记的数据
望远镜
XML呈现为HTML,webbrowser将忽略它们。可以在文本区域中看到它们,因为这将转义标记的字符
当查看原始html输出时,标记将出现。您的XML呈现为html,webbrowser将忽略它们。可以在文本区域中看到它们,因为这将转义标记的字符
当查看原始html输出时,标签将在那里。对于那些偶然发现这一点的人,@thisiisboris是正确的。如果我查看源代码,我会看到标记。谢谢你,鲍里斯!对于那些偶然发现这一点的人来说,@thisiisboris是正确的。如果我查看源代码,我会看到标记。谢谢你,鲍里斯!
<html>
<head>
<title>Spyglass</title>
<link rel="stylesheet" type="text/css" href="./style.css">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="get">
Submission Identifier: <input name="submission_id" type="submission_identifier" size="45" value="<?php $submissionId ?>"/>
<input type="submit">
</form>
<?php
date_default_timezone_set('UTC');
$configs = include('./config.php');
require './vendor/autoload.php';
use Aws\DynamoDb\Exception\DynamoDbException;
use Aws\DynamoDb\Marshaler;
if ( isset($_GET["submission_id"]) && $_GET["submission_id"] != "" ) {
$aws_credentials = new Aws\Credentials\Credentials(
$configs['aws_account_key'],
$configs['aws_account_secret']
);
$sdk = new Aws\Sdk([
'region' => $configs['aws_region_identifier'],
'version' => "2012-08-10",
'credentials' => $aws_credentials
]);
$dynamodb = $sdk->createDynamoDb();
$marshaler = new Marshaler();
$ddb_query_predicate = '{":id": "' . $_GET["submission_id"] . '"}';
$eav = $marshaler->marshalJson($ddb_query_predicate);
$params = [
'TableName' => "Orders",
'KeyConditionExpression' => '#submissionId = :id',
'ExpressionAttributeNames'=> ["#submissionId" => "submissionId"],
'ExpressionAttributeValues' => $eav
];
try {
$submissionQueryResponse = $dynamodb->query($params);
$submission = $submissionQueryResponse['Items'][0];
$submissionObject = $marshaler->unmarshalItem($submission, true);
// Extract the message sent to the ERP system by the preprocessor
$submissionMessageSent = $submissionObject->submissionMessageSent;
echo "<p><b>1:</b> $submissionMessageSent</p>";
echo <<<EOT
<textarea id="sent" wrap="off" placeholder="Sent" rows="20" cols="75">$submissionMessageSent</textarea>
EOT;
} catch (DynamoDbException $e) {
echo "Unable to query:\n";
echo $e->getMessage() . "\n";
}
}
?>
</body>
</html>