Только для этого ответа имеет смысл просто проанализировать строку и извлечь элемент. В этом ответе используются два пространства имен: одно для заголовков SOAP, а другое - для ответа на вход Amadeus. Вам нужен второй для получения токена:
//SOAP-only namespace
XNamespace soap = "http://schemas.xmlsoap.org/soap/envelope/";
//Default namespace
XNamespace ns = "http://SomeValue/SomeValue/2009/01/SomeValue.xsd";
var response=XElement.Parse(xml);
var token=response.Descendants(ns+"SecurityToken").First().Value;
Другие ответы Amadeus огромны, и XDocument не будет намного лучше (если вообще), чем использование WCF и десериализация для строго типизированных объектов. XDocument десериализует весь XML-ответ, так же, как DataContractSerializer. Вместо того чтобы возвращать строго типизированный набор объектов, вы получаете XElements, которые вам нужно сопоставить с чем-то другим.
Если вы хотите уменьшить потребление памяти, читая только те части, которые вам придется использоватьXmlReader и считывайте токены XML из потока ответов по одному. Это намного больше работы.
Еще одна интересная вещь заключается в том, что ответы Amadeus используют несколько пространств имен. Этот ответ использует только 2. Другие ответы, например поиски, используют еще много.