当RESPONSE不再是字符串而是Linq.Xelement时,如何调整此代码才能工作?
String response = "anyxml data";
XmlDocument xmlDocument = LoadXMLDocument(response);
XmlNodeList nodeList = xmlDocument.GetElementsByTagName("fql_query_response");
if (nodeList != null && nodeList.Count > 0)
{
if (nodeList[0].HasChildNodes)
{
XmlNodeList results = xmlDocument.GetElementsByTagName("event_member");
Dictionary<string, EventUser> eventUserDict = new Dictionary<string, EventUser>();
foreach (XmlNode node in results)
{
myuids.Add(Int64.Parse(node.FirstChild.InnerText));
}
}
答案 0 :(得分:1)
您的意思是想要从XmlDocument
创建XElement
吗?
最简单的方法可能就是:
XmlDocument doc = new XmlDocument();
using (XmlReader reader = element.CreateReader())
{
doc.Load(reader);
}
但是,我不得不说如果你把它全部转换为LINQ to XML,代码可能会更简单,这通常是一个更好的API开始。您有理由留在XmlDocument
吗?
答案 1 :(得分:0)
您可以使用XElement.ToString()
从XElement
创建一个XML字符串,您可以将其加载到XmlDocument
:
XmlDocument xmlDocument = LoadXMLDocument(yourXElement.ToString());