Какой код PHP поможет мне разобрать HTML-данные в XML-форме? - PullRequest
0 голосов
/ 18 сентября 2010
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

Я пытаюсь отправить целые письма механическому турку, и я использую библиотеку 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> ';

Ответы [ 2 ]

2 голосов
/ 18 сентября 2010

HTML не является формой XML;не пытайтесь разобрать это как таковой.Лучше всего использовать синтаксический анализатор HTML5 или, в противном случае, синтаксический анализатор SGML.

0 голосов
/ 18 сентября 2010

HTML-код внутри XML-документа может быть встроен несколькими способами:

  1. с трудом пройди все это с htmlspecialchars() и отправь
  2. сбежать с <![CDATA[ ... ]]> секцией
  3. преобразовать его в XHTML, указать правильное пространство имен в атрибуте xmlns

различные парсеры xml могут поддерживать или нет третий метод, я бы выбрал первый или второй.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...