枚举Linq.Xelement

时间:2010-08-04 06:26:22

标签: c# asp.net xml

当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));

                }


            }

2 个答案:

答案 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());