Тело SOAP имеет другой xml и имеет апостроф

мы отправляем xml в тело SOAP, поэтому мы заменили тег xml на <, > на &lt; и &gt; Все было хорошо, пока мы не встретили апостроф.

Этот XML прошел нормально:

&lt;ScemaLocation:Name _FirstName='John' _LastName='OBarber' /&gt;

Но этот выдал ошибку, так как у него есть апостроф в фамилии:

&lt;ScemaLocation:Name _FirstName='John' _LastName='O'Barber' /&gt;

Мы попробовали все варианты ниже, но ничего не помогло

  • O'Barber => O&apos;Barber
  • O'Barber => O/'Barber
  • O'Barber => O<![CDATA[']]>Barber
  • O'Barber => O&lt;![CDATA[']]&gt;Barber
  • O'Barber => <![CDATA[O'Barber]]>
  • O'Barber => O&lt;CDATA[O'Barber]]&gt;
  • O'Barber => O&#39;Barber

Пожалуйста, помогите мне решить эту проблему.


person user2195415    schedule 21.03.2013    source источник
comment
Экранируйте апостроф или поместите его в раздел CDATA. Это ваш единственный выбор.   -  person duffymo    schedule 21.03.2013


Ответы (1)


У нас есть два варианта решения этой проблемы

Вариант 1: ScemaLocation:Name _FirstName='John' _LastName='OBarber'; Вариант 2: Мы помещаем весь внутренний xml в раздел CData. Таким образом, нет необходимости заменять ‹ на ‹, и мы можем использовать обычную escape-последовательность для ', как в нашем случае OBarber

Надеюсь, это может быть полезно другим. Спасибо!

person user2195415    schedule 22.03.2013