我有一个简单的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();
不会自行返回任何内容。
答案 0 :(得分:48)
ToString
应该最有效。我用它所有的时间。在这种情况下,它会给你带来什么回报?一个空字符串?我的猜测是构建你的XElement
出了点问题。要进行调试,请重写代码以分别添加每个子XElement
,以便您可以单步执行代码并检查每个代码。然后在执行.ToString
之前,在Locals窗口中,查看扩展为xml的[xml]
变量。
简而言之,在您使用ToString()
方法之前,问题就出现了。
答案 1 :(得分:7)
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();