2014-02-17 36 views
-1

我如何利用这个字符串的一部分的部分:如何采取一个字符串

string="<ArrayOfArrayOfKeyValueOfstringstring xmlns:d1p1="http://www.w3.org/2001/XMLSchema" i:type="d1p1:base64Binary" xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays">0RuHA6OkPMP7myQPAR4ZDMoB8mo=</ArrayOfArrayOfKeyValueOfstringstring>"; 

我需要只是这部分“0RuHA6OkPMP7myQPAR4ZDMoB8mo”,我怎么能programmaticaly划分我需要的零件?

它不是一个XML的字符串系统给我回来时,我问电话的细节,我需要得到IMEI只把部分:

Object obj = DeviceExtendedProperties.GetValue("DeviceUniqueId"); 
byte[] objByte = ObjectToByteArray(obj); 
IMEI = System.Text.Encoding.UTF8.GetString(objByte, 0, objByte.Length); 

这个ObjectToByteArray():

a1 = IMEI.Split(IMEIerrato, 2 ,StringSplitOptions.None); 
IMEIgiusto = a1[1].Replace("=</ArrayOfArrayOfKeyValueOfstringstring>", ""); 
Debug.WriteLine("IMEI: "+IMEIgiusto); 

我得到这个OUTP:

private byte[] ObjectToByteArray(Object obj) 
     { 
      DataContractSerializer serializer = new DataContractSerializer(typeof(List<Dictionary<String, String>>)); 

      byte[] byteArr; 

      using (var ms = new System.IO.MemoryStream()) 
      { 
       serializer.WriteObject(ms, obj); 
       byteArr = ms.ToArray(); 
      } 
      return byteArr; 

我使用拆分,并通过这种方式更换绳剪断UT:

IMEI: 0RuHA6OkPMP7myQPAR4ZDMoB8mo 

议决

+2

如果是XML,为什么不使用XML API? –

+0

@JonSkeet它不是一个xml –

+0

它对我来说当然看起来像XML。您认为哪种方式不是XML? –

回答

6

我会使用XML API:

XElement element = XElement.Parse(text); 
string value = element.Value; 
byte[] bytes = Convert.FromBase64String(value); 
0

我把绳剪断使用分割和替换通过这种方式:

a1 = IMEI.Split(IMEIerrato, 2 ,StringSplitOptions.None); 
IMEIgiusto = a1[1].Replace("=</ArrayOfArrayOfKeyValueOfstringstring>", ""); 
Debug.WriteLine("IMEI: "+IMEIgiusto); 

我得到此输出:

IMEI: 0RuHA6OkPMP7myQPAR4ZDMoB8mo 
相关问题