.net xml中無效字元處理

來源:互聯網
上載者:User

        /// <summary>
        /// 將部分無效字元替換成空
        /// </summary>
        /// <param name="responseXml">Gta伺服器Response後返回的Xml資料</param>
        /// <returns>string</returns>
        private string ConvertHex(string responseXml)
        {
            UTF8Encoding encoding = new UTF8Encoding();
            Byte[] responseByteArr = encoding.GetBytes(responseXml);
            for (int i = 0; i < responseByteArr.Length; i++)
            {
                if (responseByteArr[i] < 32)
                {
                    responseByteArr[i] = 32;
                }
            }
            return encoding.GetString(responseByteArr);
        } 

 

=======================================

convertXml主要用於,XML 名稱及與xsd配合使用轉用相磁類型

以下轉自msdn

對 XML 名稱進行編碼和解碼並提供方法在公用語言類型庫類型和 XML 結構定義語言 (XSD) 類型之間進行轉換。當轉換資料類型時,返回的值是獨立於地區設定的。

根據位於 www.w3.org/TR/2000/REC-xml-20001006.html 的可延伸標記語言 (XML) (XML) 1.0(第二版)建議,元素和屬性名稱或 ID 值限於一系列 XML 字元。當名稱包含無效字元時,EncodeName 和 DecodeName 方法用於將它們轉換為有效 XML 名稱。

許多語言和應用程式(例如 Microsoft SQL Server 和 Microsoft Word)允許在它們的名稱中使用 Unicode 字元,這些字元在 XML 名稱中是無效的。例如,如果“Order Detail”是資料庫中的一個欄位標題,則資料庫允許在單詞 Order 和 Detail 之間使用空格。但是,在 XML 中,Order 和 Detail 之間的空格將被視為無效的 XML 字元。這樣,需要將該空格(一個無效的字元)轉換為轉義的十六進位編碼,並可在以後對該編碼進行解碼。

可以將 EncodeName 方法和 XmlWriter 類一起使用來確保正在書寫的名稱是有效 XML 名稱。下面的 C# 代碼將名稱“Order Detail”轉換為有效 XML 名稱並編寫元素 <Order_0x0020_Detail>My order</Order_0x0020_Detail>。

  複製代碼
 writer.WriteElementString(XmlConvert.EncodeName("Order Detail"),"My order");

XmlConvert 還提供了使您能夠在字串和 .NET Framework 資料類型之間進行相互轉換的方法。在資料轉換過程中不考慮地區設定。資料類型基於 XML 結構描述 (XSD) 資料類型。

注意

在 .NET Framework 2.0 版中,XmlReader、XmlWriterXPathNavigator 類包含可處理類型化資料的新方法。這些新方法為您處理字串到 .NET Framework 資料類型的轉換。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.