C# Linq到XML转换器

C# Linq到XML转换器,c#,xml,linq,C#,Xml,Linq,有人能帮我做一下以下的事情吗(我正在努力形成这个问题) XML 我的解决方案: public void example3() { var xElem = XElement.Load("test.xml"); var myobject = xElem.Descendants("response").Select( x => new MarketClockResponse { //Struggling to proc

有人能帮我做一下以下的事情吗(我正在努力形成这个问题)

XML

我的解决方案:

public void example3()
{
    var xElem = XElement.Load("test.xml");

    var myobject = xElem.Descendants("response").Select(
        x => new MarketClockResponse
        {
              //Struggling to proceed from here  
        });
} 

您正在尝试从
response
元素(xml的根)中选择
response
元素。直接使用此元素:

var responseElement = XElement.Load(path_to_xml);
var statusElement = responseElement.Element("status");
var myobject = new MarketClockResponse
{
    response = new Response
    {
        Id = (string)responseElement.Attribute("id"),
        date = (string)responseElement.Element("date"),
        message = (string)responseElement.Element("message"),
        status = new Status
        {
            current = (string)statusElement.Element("current"),
            change_at = (string)statusElement.Element("change_at")
        }
    }
};

您正在尝试从
response
元素(xml的根)中选择
response
元素。直接使用此元素:

var responseElement = XElement.Load(path_to_xml);
var statusElement = responseElement.Element("status");
var myobject = new MarketClockResponse
{
    response = new Response
    {
        Id = (string)responseElement.Attribute("id"),
        date = (string)responseElement.Element("date"),
        message = (string)responseElement.Element("message"),
        status = new Status
        {
            current = (string)statusElement.Element("current"),
            change_at = (string)statusElement.Element("change_at")
        }
    }
};

首先,我将使用
XDocument.Load
而不是
XElement.Load
,因为您的XML是一个带有声明等的文档

var xDoc = XDocument.Load("Input.txt");
然后,我设置了两个局部变量,以避免多次查询同一事物:

var resp = xDoc.Root;
var status = resp.Element("status");
并使用它们来获得您需要的:

var myobject = new MarketClockResponse
{
    response = new Response
    {
        Id = (string)resp.Attribute("id"),
        date = (string)resp.Element("date"),
        message = (string)resp.Element("message"),
        status = new Status
        {
            current = (string)status.Element("current"),
            change_at = (string)status.Element("change_at")
        }
    }
};

首先,我将使用
XDocument.Load
而不是
XElement.Load
,因为您的XML是一个带有声明等的文档

var xDoc = XDocument.Load("Input.txt");
然后,我设置了两个局部变量,以避免多次查询同一事物:

var resp = xDoc.Root;
var status = resp.Element("status");
并使用它们来获得您需要的:

var myobject = new MarketClockResponse
{
    response = new Response
    {
        Id = (string)resp.Attribute("id"),
        date = (string)resp.Element("date"),
        message = (string)resp.Element("message"),
        status = new Status
        {
            current = (string)status.Element("current"),
            change_at = (string)status.Element("change_at")
        }
    }
};

XML是否总是只包含一个
响应
元素?什么查询?问题是什么。他不知道如何从Xelementy构建对象它总是只包含一个响应标记XML总是只包含一个
response
元素吗?什么查询?问题是什么?他不知道如何从Xelementy构建对象它总是只包含一个响应标记感谢您提供的分步说明特别是XDoc和XElement感谢您提供的分步说明特别是XDoc和XElement