Мне нужно извлечь информацию из входящих (например, xml) данных на основе данного шаблона. Шаблон может быть XML или текстовым (разделенный запятой). Для каждого типа сообщения существует шаблон, например.Анализ/Извлечение информации из текстового шаблона
<SomeMessage>
<Id>$id</Id>
<Position>
<X>$posX</X>
<Y>$posY</Y>
<Z>$posZ</Z>
</Position>
</SomeMessage>
Поступающий данные, например, является:
<SomeMessage>
<Id>1</Id>
<Position>
<X>0.5f</X>
<Y>1.0f</Y>
<Z>0.0f</Z>
</Position>
</SomeMessage>
Теперь мне нужно, чтобы извлечь информацию о $ ID, $ PosX и т.д.
Parser p = new Parser(templateString);
int id = p.Extract("id", incomingString);
float posx = p.Extract("posX", incomingString);
мне нужно что-то вроде разницы incomingData и шаблон, а затем извлекать информацию в соответствующей позиции. Поскольку существует несколько tempaltes, которые содержат различную информацию и могут быть расширены в будущем, я ищу общий подход.
Шаблон в этом случае может быть также
$id,$posX,$posY,$posZ
и поступающие данные будут затем
1,0.5f,1.0f,0.0f
В последнем случае может быть eaiser для синтаксического анализа, но мне нужно решение, которое способно дескриптор как (шаблон xml, так и не xml).
[LINQ к XML] (http://msdn.microsoft.com/en-us/library/bb387098.aspx), вероятно, лучший API для этого. – Oded