将字符串转换为XML

时间:2012-07-02 07:51:27

标签: c# linq

我用Linq编写了一个查询,在我的代码的一部分中,我尝试将字符串分配给XML,但发生了错误:

无法将类型'string'隐式转换为'System.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();
}

如何解决我的问题?

2 个答案:

答案 0 :(得分:2)

由于GpxData在数据库中的类型为XML,因此无法直接为其指定字符串,您需要创建一个en XElement,然后为其赋值:

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

route.GpxData的类型为字符串

答案 1 :(得分:1)

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

string content = someXElement.Value

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

更新:在您最近的编辑之后,您会更清楚地想要一个新的XElement:

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

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