提取信息
假设我有一个字符串,它看起来像以下:提取信息
string foo ="<add key="key1" Value="val1"/>
<add key="key2" Value="val2"/>
<add key="key3" Value="val3"/>"
frrom这个字符串,我需要通过循环,让每一个键值对,并做一些与他们。 我该怎么做?
谢谢
这实际上是XML吗?如果是这样,请使用XML解析器。如果它是一堆的元素,但没有一个“根”元素,你也可以添加到开始和结束:
string xml = "<foo>" + foo + "</foo>";
,然后使用XML解析器。
编辑:好吧,如果它是XML,你应该肯定使用XML解析器。否则,你可以很容易地运行与编码值等问题
(1)第一删除这些字符:<,/,>” (2)上拆分‘=’
请注意,用下面的代码,玩的循环值(指数超出范围..等)
编辑:
private Dictionary[] ExtractValuePair(string PString) {
Of;
String;
String;
Dictionary _dc = new Dictionary(Of, String, String);
string[] _tmpStr;
PString = PString.Replace("<", "").Replace(">", "").Replace("/", "").Replace('"', "").Replace("add key", "").Replace("Value", "");
_tmpStr = PString.Split("=");
int i;
for (i = 1; (i
<= (_tmpStr.Length - 2)); i++) {
_dc.Add(_tmpStr[i], _tmpStr[(i + 1)]);
}
return _dc;
}
根据我的回答评论:尝试'
它可以制动的情况是:,/,'add key','Value'尖括号可以解决,因为XML编码会使它们逃脱,将代码更改为不转义将很容易。唯一的问题是:'/','添加键'和'值'。一点点的进一步编码可以被克服 – Darknight 2009-11-11 16:59:45
@Darknight:当XML解决方案实际上只有几行时,听起来像是非常多的工作。你还没有发现以前的问题 - 你有多确信现在你已经找出了可能出错的一切?为了避免使用内置的XML库,您愿意花费多少时间才能使这一切正常工作?你从这些工作中获得了什么好处?也许你想要实现自己的字符串类以及下一个? – 2009-11-11 17:26:00
的字符串就是一个XML的一堆从中我只需要得到键和值。 – raklos 2009-11-11 14:54:04
Jon使用xml解析器的权利要比试图自行解决这个问题容易得多。使用它的开销很小,好处很大。 – kemiller2002 2009-11-11 14:58:07
你能说“XLINQ”吗? – 2009-11-11 15:16:34