2017-12-20 5 views
0

XMLataを要素内に配置しようとしています。しかし、解析部分XDocument.Parseは "CDATAの解析中に予期しないファイルの終わりが発生しました"と失敗します。私は明らかにxml文字列を整理してCDataを削除することができますが、なぜこの解析はできませんか?XDocument.ParseはXML内のCDataで例外をスローします

//this throws an exception 
var xDoc = XDocument.Parse(GetSampleXmlText()); 

private string GetSampleXmlText() 
    { 
     //WARNING: Tests will break if element order/hierarchy is changed 

     var xml = 
      @"<?xml version=""1.0"" encoding=""UTF-8""?>             " + 
      @"<ac_application>                   " + 
      @" <primary_applicant_data>                " + 
      @"  <first_name>Joe</first_name>               " + 
      @"  <middle_name></middle_name>               " + 
      @"  <last_name>Irving</last_name>               " + 
      @"  <ssn>123456789</ssn>                 " + 
      @"  <dob>09/09/1979</dob>                 " + 
      @"  <email_address>[email protected]</email_address>          " + 
      @"  <home_phone>3215551212</home_phone>             " + 
      @"  <mobile_phone>3215898888</mobile_phone>            " + 
      @"  <contact_number officePhone=""1x34ad789"" />           " + 
      @"  <contact_number cellPhone=""(321)898-8888"" />          " + 
      @"  <other_phone>(321)666-7777</other_phone>            " + 
      @"  <invalid_phone>32aZ9xd8</invalid_phone>            " + 
      @"  <valid_id type=""SSN"">9999999990</valid_id>           " + 
      @"  <valid_id type=""ITIN"">99-999-99990</valid_id>          " + 
      @"  <address type=""current"">               " + 
      @"  <street_no>14</street_no>               " + 
      @"  <street_name>B</street_name>              " + 
      @"  <apt_no>155</apt_no>                " + 
      @"  <city>Santa Ana</city>                " + 
      @"  <state>CA</state>                 " + 
      @"  <zip_code>6654</zip_code>               " + 
      @"  </address>                   " + 
      @"  <address type=""permanent"">               " + 
      @"  <street_no>54</street_no>               " + 
      @"  <street_name>B</street_name>              " + 
      @"  <apt_no>104</apt_no>                " + 
      @"  <city>Santa Fe</city>                " + 
      @"  <state>CA</state>                 " + 
      @"  <zip_code>60750</zip_code>               " + 
      @"  </address>                   " + 
      @" </primary_applicant_data>                " + 
      @" <vehicle>                    " + 
      @"  <year>2013</year>                 " + 
      @"  <make>Toyota</make>                " + 
      @"  <model>Corolla</model>                " + 
      @"  <trim>4D Sedan</trim>                " + 
      @"  <odometer>175,000</odometer>              " + 
      @"  <price>$15,700</price>                " + 
      @" </vehicle>                    " + 
      @" <secret_data><![CDATA[topsecret]]</secret_data>          " + 
      @"</ac_application>                   "; 

     return xml.Trim(); 
    } 

答えて

1

CDATAには、>がありません。

<![CDATA[topsecret]]> 
0

文字列 "contact_numberのofficePhoneは" 一度だけ表示されます... StackOverflowのに

+0

ようこそ:これは右の構文です!なぜこれが問題であり、その解決が何であるかについてのさらなる説明は、回答者だけでなく将来の読者にも役立つでしょう。さらに詳しい説明を追加すると、あなたは答えが投票されるか、質問者が受け入れることができます。 –

関連する問題