将字符串转换为XML

问题描述:

我已经写了一个查询使用LINQ和我的代码一个部分,我尝试分配字符串转换为XML,但发生错误:将字符串转换为XML

无法隐式转换类型‘字符串’到'系统.Xml.Linq.XElement”

这是我的代码:

public int Save(Route route) 
{    
    aspnetdbDataContext aspdb = new aspnetdbDataContext(); 
    RouteLinq rtlq=new RouteLinq(); 
    rtlq.UserId = route.UserId; 
    rtlq.SourceName = route.Name; 

    //I have an error hier 
    rtlq.GpxData = route.GpxData; 
    //--------------------------- 
    rtlq.CreationTime = route.Time; 
    aspdb.RouteLinqs.InsertOnSubmit(rtlq); 
    aspdb.SubmitChanges(); 
} 

我怎样才能解决我的问题?

+0

哪个项目是'XElement'? –

+0

rtlq.GpxData ia XML,我无法使用'Tostring()' – Kabi

+0

您应该使用[''XElement.Parse'](http://msdn.microsoft.com/zh-cn/library/bb468714 .aspx)使其起作用 – V4Vendetta

因为GpxData是XML类型的数据库,你不能直接指定字符串,你需要创建一个连接的XElement,然后分配给它的价值:

rtlq.GpxData = new XElement(route.GpxData); 

哪里route.GpxData是字符串类型

如果你有一个的XElement,你可以得到的只是文字内容是这样的:

string content = someXElement.Value 

如果你想完整的节点,则需要使用XElement.ToString()

UPDATE:您最新的编辑后,它更清楚你真正想要一个新的XElement:

rtlq.GpxData = new XElement("GpxData", route.GpxData); 

的第一个参数是节点的名称,第二个是内容。如果route.GpxData已经包含一个Xml字符串,您也可以使用XElement.Parse(route.GpxData)