【发布时间】:2014-02-17 09:45:51
【问题描述】:
我如何获取这个字符串的一部分:
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”,如何以编程方式划分我需要的部分?
它不是 xml,它是系统在我询问电话详细信息时返回给我的字符串,我只需要获取 IMEI 的一部分:
Object obj = DeviceExtendedProperties.GetValue("DeviceUniqueId");
byte[] objByte = ObjectToByteArray(obj);
IMEI = System.Text.Encoding.UTF8.GetString(objByte, 0, objByte.Length);
这个 ObjectToByteArray():
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;
我通过这种方式使用拆分和替换来剪切字符串:
a1 = IMEI.Split(IMEIerrato, 2 ,StringSplitOptions.None);
IMEIgiusto = a1[1].Replace("=</ArrayOfArrayOfKeyValueOfstringstring>", "");
Debug.WriteLine("IMEI: "+IMEIgiusto);
我得到这个输出:
IMEI: 0RuHA6OkPMP7myQPAR4ZDMoB8mo
已解决
【问题讨论】:
-
如果是 XML,为什么不使用 XML API?
-
@JonSkeet 它不是 xml
-
在我看来它确实像 XML。您认为这不是 XML 的哪一方面?
-
它是我从 IMEI = System.Text.Encoding.UTF8.GetString(objByte, 0, objByte.Length) 得到的回报;
-
当然。这并不意味着它不是 XML……(你确定
obj在你获取它时还不是一个字符串吗?ObjectToByteArray方法是什么?)
标签: c# string methods split windows-phone