0
FalseAWS.MechanicalTurk.XMLParseErrorThere was an error parsing the XML question or answer data in your request. Please make sure the data is well-formed and validates against the appropriate schema. (1284779956270)Array00

メール全体をMechanicalTurkに送信しようとしていますが、mtturk.lib.phpライブラリを使用して送信しています。urlencodeとhtmlentitiesを試して送信しようとしましたが、このコードを「十分にフォーマットされた」状態にして送信できる関数があると確信しています。

$thequestion = '<a href="linkgoeshere" target="_blank">click here</a>';

$QuestionXML = '<QuestionForm xmlns="http://mechanicalturk.amazonaws.com/AWSMechanicalTurkDataSchemas/2005-10-01/QuestionForm.xsd">
  <Question>
    <QuestionContent>
      <Text>'.$thequestion.'</Text>
    </QuestionContent>
    <AnswerSpecification>
      <FreeTextAnswer/>
    </AnswerSpecification>
  </Question>
</QuestionForm> ';
4

2 に答える 2

2

HTMLはXMLの形式ではありません。そのように解析しようとしないでください。最善の策は、HTML5パーサーを使用するか、それを取得できない場合はSGMLパーサーを使用することです。

于 2010-09-18T03:30:35.510 に答える
0

xmlドキュメント内のhtmlコードは、いくつかの方法で埋め込むことができます。

  1. それをすべての困難な方法で脱出し、それhtmlspecialchars()を送ってください
  2. <![CDATA[ ... ]]>セクションでそれを脱出する
  3. XHTMLに変換し、xmlns属性で適切な名前空間を指定します

異なるxmlパーサーが3番目の方法をサポートするかどうかはわかりませんが、最初の方法または2番目の方法を使用します。

于 2010-09-18T03:32:02.540 に答える