将字符串转换为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();
}
我怎样才能解决我的问题?
答
因为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)
哪个项目是'XElement'? –
rtlq.GpxData ia XML,我无法使用'Tostring()' – Kabi
您应该使用[''XElement.Parse'](http://msdn.microsoft.com/zh-cn/library/bb468714 .aspx)使其起作用 – V4Vendetta