C # - лучший способ для анализа XML-текста и выполнения действий - PullRequest
0 голосов
/ 24 января 2011

У меня есть небольшая текстовая строка с тегами, похожими на xml:

<sub>A</sub>B<sup>C</sup>

Мне нужно проанализировать этот текст и выполнить действия на основе тегов.Таким образом, приведенный выше текст будет выглядеть как A B C в моем целевом приложении (MS Excel - Excel может анализировать и форматировать эту строку, если я вставлю ее, но не если я просто введу ее вячейка).

Как лучше всего анализировать текст на основе тегов с точки зрения производительности.Код форматирования будет вызываться очень часто, и я хочу максимально сократить накладные расходы.Я могу думать о следующих параметрах:

  1. Анализировать его символ за символом, используя индексатор, отслеживая, когда тег начинался / заканчивался
  2. Использовать регулярные выражения
  3. Загрузитьэто в некоторый XML / HTML DOM Parser и итерацию по узлам

Какой из них, по вашему мнению, окажет наименьшее влияние на производительность?Есть ли другой способ выполнить задачу?

1 Ответ

4 голосов
/ 24 января 2011

Не изобретайте велосипед заново, а особенно не используйте регулярные выражения .

Использовать существующий синтаксический анализатор XML.
Вы должны использовать LINQ to XML.

Если вы реализуете это и обнаружите, что он слишком медленный, вы можете переключиться на XmlReader, который будет очень быстрым, но раздражающим для работы.
Помните; преждевременная оптимизация - корень всего зла.

...