Другой (и более простой IMO) подход заключается в том, чтобы просто искать в строке наличие заданной подстроки и посмотреть, был ли поиск успешным, например:
set found [expr {[string first $needle $haystack] >= 0}]
Это простой поиск, ни одна из строк не интерпретируется каким-либо образом, поэтому не стоит беспокоиться по поводу побега.
Другими словами, ваша конкретная потребность слишком проста, чтобы бросать в нее инструменты, предназначенные для более тяжелого подъема. Например, вы хотите использовать регулярное выражение или сопоставление с глобусом, если вам нужно искать, скажем, «подстроку, начинающуюся с <FaultCode>
, затем содержащую набор смежных символов в диапазоне от 0 до 9 и оканчивающийся на </FaultCode>
"- это будет, в частности, механизмом регулярных выражений, позволяющий извлекать эту неопределенную подстроку цифровых символов из строки.
Кроме того, я чувствую, что должен делать примечание обязательным в случаях, подобных этому: не разумно анализировать XML ни с чем, кроме инструментов XML. В частности, существуют tclsoap и tdom .