/// <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) 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、XmlWriter 和 XPathNavigator 类包含可处理类型化数据的新方法。这些新方法为您处理字符串到 .NET Framework 数据类型的转换。 |