将 XElement 转换为字符串
Posted
技术标签:
【中文标题】将 XElement 转换为字符串【英文标题】:Convert XElement to string 【发布时间】:2009-12-21 20:47:47 【问题描述】:我有一个简单的 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();
不会自行返回任何内容。
【问题讨论】:
【参考方案1】:ToString
肯定可以工作。我用它所有的时间。在这种情况下,它会为您返回什么?一个空字符串?我的猜测是构建您的XElement
时出了点问题。要进行调试,请重写代码以分别添加每个子 XElement
s,以便您可以单步执行代码并检查每个子代码。然后在执行.ToString
之前,在Locals 窗口中查看扩展为xml 的[xml]
变量。
简而言之,在您使用 ToString()
方法之前,您的问题就已经发生了。
【讨论】:
【参考方案2】:ToString
有效,但它返回的内容包括 XElement 标记本身。如果您需要 Inner XML 没有根标签(在您的示例中为“”),您可以使用以下扩展方法:
public static class XElementExtension
public static string InnerXML(this XElement el)
var reader = el.CreateReader();
reader.MoveToContent();
return reader.ReadInnerXml();
然后简单地调用它:xml.InnerXML();
【讨论】:
以上是关于将 XElement 转换为字符串的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 XElement.Parse 解析 XML 而无需查看/将实体更改为字符?