robinzonejob
@robinzonejob
разработчик .NET

Есть ли простой способ десериализовать xml с подобным содержанием?

Пример XML:

<TERRORISTS_CATALOG NUM="299ПЭ" DATE="17.01.2019" ID="3626426744">
   <TERRORISTS>
      <TERRORISTS_NAME>&lt;![CDATA[GLOBAL RELIEF FOUNDATION (GRF)* ]]&gt;</TERRORISTS_NAME>
      <NUM>51</NUM>
      <person_type>1</person_type>
      <birth_date>&lt;![CDATA[]]&gt;</birth_date>
      <DESCRIPTION>&lt;![CDATA[Other Foreign Locations: Afghanistan, Bangladesh, Eritrea, Ethiopia, India, Iraq, West Bank and Gaza, Somalia and Syria. Federal Employer Identification Number (United States of America): 36-3804626. Review pursuant to Security Council resolution 1822 (2008) was concluded on 21 Jun. 2010.]]&gt;</DESCRIPTION>
      <ADDRESS>&lt;![CDATA[9935 SOUTH 76TH AVENUE, UNIT 1, BRIDGEVIEW, ILLINOIS 60455, UNITED STATES OF AMERICA; P.O. BOX 1406, BRIDGEVIEW, ILLINOIS 60455, UNITED STATES OF AMERICA]]&gt;</ADDRESS>
      <TERRORISTS_RESOLUTION>&lt;![CDATA[A. Resolution 1333 (2000)]]&gt;</TERRORISTS_RESOLUTION>
      <BIRTH_PLACE>&lt;![CDATA[]]&gt;</BIRTH_PLACE>
      <PASSPORT>&lt;![CDATA[]]&gt;</PASSPORT>
      <ID>61412943</ID>
   </TERRORISTS>
<TERRORISTS>
      <TERRORISTS_NAME>&lt;![CDATA[КАРСАМОВ КИМРАН МУХАМЕТОВИЧ* ]]&gt;</TERRORISTS_NAME>
      <NUM>3931</NUM>
      <person_type>4</person_type>
      <birth_date>&lt;![CDATA[01.11.1992]]&gt;</birth_date>
      <DESCRIPTION>&lt;![CDATA[]]&gt;</DESCRIPTION>
      <ADDRESS>&lt;![CDATA[РОССИЙСКАЯ ФЕДЕРАЦИЯ, ЧЕЧЕНСКАЯ РЕСПУБЛИКА, СУНЖЕНСКИЙ РАЙОН, СТ. АССИНОВСКАЯ, УЛ. МЕЖДУНАРОДНАЯ, Д. 138; РОССИЙСКАЯ ФЕДЕРАЦИЯ, ЧЕЧЕНСКАЯ РЕСПУБЛИКА, СУНЖЕНСКИЙ РАЙОН, СТ. АССИНОВСКАЯ, УЛ. МЕЖДУНАРОДНАЯ, Д. 138]]&gt;</ADDRESS>
      <TERRORISTS_RESOLUTION>&lt;![CDATA[]]&gt;</TERRORISTS_RESOLUTION>
      <BIRTH_PLACE>&lt;![CDATA[СТ. ОРДЖОНИКИДЗЕВСКАЯ СУНЖЕНСКОГО РАЙОНА ЧИАССР]]&gt;</BIRTH_PLACE>
      <PASSPORT>&lt;![CDATA[ПАСПОРТ РФ:,]]&gt;</PASSPORT>
      <ID>10667572055</ID>
   </TERRORISTS>
</TERRORISTS_CATALOG>


Проблема заключается в том, что содержание каждого тэга обернуто в ![CDATA].
При стандартном способе десериализации я получаю нечто вроде:

5d9b53767d888514134423.png

Существует ли какой-нибудь коробочный механизм (параметр у атрибута или у метода десериализации, например), который бы забирал только само содержимое ![CDATA] или как-то его обрубал?
  • Вопрос задан
  • 213 просмотров
Пригласить эксперта
Ответы на вопрос 1
shai_hulud
@shai_hulud
Открываете ваш документ в Notepad, делаете замену
&lt;![CDATA[
// на 
<![CDATA[

потом
]]&gt; 
// на
]]>


И снова заталкиваете в .NET десериализатор.
Либо, если память резиновая, то делать замену программно прочитав весь файл и затем string.Replace("").
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы