Мне нужно извлечь информацию из входящих (например, 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);
Мне нужно что-то вроде различия входящих данных и шаблона, а затем извлечь информацию на подходящей позиции.Поскольку существует несколько шаблонов, которые содержат различную информацию и могут быть расширены в будущем, я ищу общий подход.
Шаблон в этом случае также может быть
$id,$posX,$posY,$posZ
и входящийтогда данные будут
1,0.5f,1.0f,0.0f
Последний случай может быть проще для анализа, но мне нужно решение, которое может обрабатывать как (шаблон XML, так и не XML).