HTTP POST要求でXML入力を受け取り、それを処理してからXML応答を返すPHPスクリプトを作成する必要があります。私はこれを自分自身で試している間にかなりの時間を費やしてきました。ここに私がこれまで持っていたものがあります。PHPを使用してXMLデータを受信し、処理して返す最良の方法は何ですか?
私は最初に、ユーザーがXMLデータを文字列、文字列としてのXML URI、またはPHPスクリプトへのXML URIとして提出できるHTMLフォームをまとめました。このフォームはテスト用です。私はこのスクリプトを作成するだけです。私のPHPスクリプトで
私はその後、XMLデータが何であるかに基づいて、いくつかのものを行う
// Checks that some XML input has been given
if (!(isset($_POST['xmlinput']))) {
handleErrors("No XML Input Given");
}
// Creates a new DOM Document
$domdoc = new DomDocument;
// Sets the URL of the XML Schema
$xmlschema = "xmlschema.xsd";
// If XML input is a file, tries to load it
if (file_exists($_POST['xmlinput'])) {
if (!$domdoc->load($_POST['xmlinput'])) {
handleErrors("Error in XML File");
}
}
// If XML input is not a file, tries to load it as a string
else {
if (!$domdoc->loadXML($_POST['xmlinput'])) {
handleErrors("Error in XML Document");
}
}
// Validates the XML against the schema
if (!($domdoc->schemaValidate($xmlschema))) {
handleErrors("XML Does Not Conform To Schema");
}
...いくつかの入力が取り扱い行い、その後、私はXMLレスポンスを生成します。 DOMやSimpleXMLでXMLを作成することはかなり可能ですが、元のページに戻す方法は分かりません。また、これはPHPでXML入力を処理する最善の方法ですか?私はphp://入力や$ HTTP_RAW_POST_DATAに関する記事をたくさん見てきましたが、これらは私が使っている方法よりも優れているようには思えません。あなたが私に与えることができる情報は大きな助けになるでしょう。それ以上明確にすることができれば、私に知らせてください。
私はすでにエラー処理にlibxml_use_interal_errorsを使用していますが、ありがとうございます。フィードバックいただきありがとうございます。 – OpticalDelusion