我创建的程序是解析日志行。日志行还包含请求和响应方式的SYNCML数据。
我让解析器的第一部分正常工作,它解析了包含同步ML数据的日志,因此只包含请求和响应日志行。现在我想从该日志行中删除所有内容,然后保留syncML数据。我不确定我怎么做到这一点。
这是我到目前为止所做的。
Regex request = new Regex(@"request class SyncML");
Regex response = new Regex(@"response class SyncML");
string line;
while ((line = sr.ReadLine()) != null)
{
Match req = request.Match(line);
Match res = response.Match(line);
if (req.Success)
{
string v = req.Groups[1].Value;
Console.WriteLine(line);
Console.WriteLine("\t" + v);
}
if (res.Success)
{
string v = res.Groups[1].Value;
Console.WriteLine(line);
Console.WriteLine("\t" + v);
}
}
所以这一切都有效,但是这些线条包含了所包含的所有其他信息,例如日期时间和其他很多我不关心的东西。我只想要纯XML .. xml的每个开始都以
开头 <?xml
那么如何在&lt;之前删除所有内容? xml并保留其余部分?基本上我只想要xml。
这有意义吗?
日志行看起来像这样:
2015-10-08T10:15:01.383-0400 <bunch of other crap> request class SyncML: <?xml version="1.0 yadadada until the end.
答案 0 :(得分:0)
看起来我觉得它比较简单。
string s = line.Substring(line.IndexOf("<?xml "));
这将删除xml有效负载前面的所有内容,剩下的只是xml payLoad。
@jdweng你的权利Regex不是工具,SubString是。