2011-04-22 84 views
2

全部取制表符,
过程:地图平面文件到应用程序对象。
元数据:保存在Xml文件中。包含每个存储在属性中的字段名称,分隔符和订单号。
问题:在应用程序代码中提取定界符属性时,制表符(\ t)会如下所示:\\t(双反斜杠t)。C#.NET从XML属性

XML示例:

<field name= "Field1" delimiter='\t' orderNum="1"/> 

代码示例:

attrVal = node.Attributes["delimiter"].Value; 

问题:我想每个行分隔符的文件中分裂。喜欢的东西:

string [] delim = new string[] { attrVal }; 
string line = streamReader.ReadLine(); 
string[] record = line.Split(delim, StringSplitOptions.None); 

然而,因为分隔符是\\t(双反斜线T),Split函数不承认它。

问题:我应该剥离使用子字符串的第一个反斜杠(即使可能,因为它是一个逃生)?有没有不同的方式,我应该访问Xml文件中的属性,所以它不会逃避第一个反斜杠?任何信息,将不胜感激。提前致谢。

回答

3
<field name= "Field1" delimiter='\t' orderNum="1"/> 

这被解释为两个字符\t,而不是作为标签 - 那是你的问题。

您可以编码在XML标签的方式如下:

<field name= "Field1" delimiter="&#x9;" orderNum="1"/> 
+0

像魅力一样工作。谢谢! – 2011-04-22 17:42:28

3

您可以尝试使用Regex.Unescape(string)

String str = "string \\nstring"; 
Console.WriteLine(str); 

Prints: 

string \nstring 

String str = "string \\nstring"; 
Console.WriteLine(Regex.Unescape(str)); 

Prints: 

string 
string 
+0

这个工作的!四周的好工作。 – 2011-04-22 17:46:47