簡體   English   中英

XDocument.Parse在XML內引發CData異常

[英]XDocument.Parse throws an exception with CData inside XML

我正在嘗試將帶有CData的xml字符串放入元素內。 但是解析部分XDocument.Parse失敗,並顯示“發生解析CDATA時文件意外結束”。 我顯然可以清理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>test123@gmail.com</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();
    }

CDATA缺少結束符> 這是正確的語法:

<![CDATA[topsecret]]>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM