У меня есть простой объект XElement
XElement xml = new XElement("XML",
new XElement ("TOKEN",Session["Token"]),
new XElement("ALL_INCLUSIVE", "0"),
new XElement("BEACH", "0"),
new XElement("DEST_DEP", ddlDest.SelectedValue.ToString()),
new XElement("FLEX", "0")
);
Где хотите выгрузить содержимое в строку. Точно так же, как Console.Writeline(xml);
, но я хочу содержимое в строке. Я пробовал разные метаны. xml.ToString();
ничего не возвращает ничего.
Большое спасибо, Marty
ToString должен наиболее определенно работать. Я использую это все время. Что это для вас в этом случае? Пустая строка? Я предполагаю, что что-то пошло не так, чтобы построить свой XElement. Чтобы отладить, перепишите код, чтобы добавить каждый из дочерних XElements отдельно, чтобы вы могли выполнить свой код и проверить каждый из них. Затем перед выполнением .ToString в окне Locals посмотрите на переменную [xml], расширенную в xml.
Короче говоря, ваша проблема происходит до того, как вы дойдете до метода ToString().
ToString
работает, но он возвращает содержимое, включая сам тег XElement. Если вам нужен Внутренний XML без корневого тега ("" в вашем примере), вы можете использовать следующий метод расширения:
public static class XElementExtension
{
public static string InnerXML(this XElement el) {
var reader = el.CreateReader();
reader.MoveToContent();
return reader.ReadInnerXml();
}
}
Тогда просто назовите его: xml.InnerXML();