Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在xml中获取根元素的值_C#_Xml_Microsoft Metro_Windows Store Apps - Fatal编程技术网

C# 如何在xml中获取根元素的值

C# 如何在xml中获取根元素的值,c#,xml,microsoft-metro,windows-store-apps,C#,Xml,Microsoft Metro,Windows Store Apps,我正在尝试制作一个WindowsRT程序,但我似乎不知道如何获取根元素的值。xmldocument仅包含: 0.7423 如何使用c#和window store获得值“0.7422”?每次我尝试某个东西时,它都返回一个空值 这就是我迄今为止所尝试的: `var getRate = from query in xmlDoc.Descendants("double") select new

我正在尝试制作一个WindowsRT程序,但我似乎不知道如何获取根元素的值。xmldocument仅包含:

0.7423

如何使用c#和window store获得值“0.7422”?每次我尝试某个东西时,它都返回一个空值

这就是我迄今为止所尝试的:

            `var getRate = from query in xmlDoc.Descendants("double")
                             select new
                             {
                                 Rate = query.Value
                             };

            foreach (var query in getRate)
            {
                rate = Convert.ToDouble(query.Rate);

            }`
我也试过:

`var rate= xmlDoc.Root.Element("double").Value;

 var rate= xmlDoc.Element("double").Value;

 rate = (double)XElement.Load(xmlstream);`
但是rate总是返回一个空值。

试试这个

string xml = "<double>0.7423</double>";
var document = XDocument.Parse(xml);
var doubleValue = document.Descendants("double").FirstOrDefault().Value;
stringxml=“0.7423”;
var document=XDocument.Parse(xml);
var doubleValue=document.subjects(“double”).FirstOrDefault().Value;
非常明显:

internal class Program
{
    private static void Main(string[] args)
    {
        var xml = "<double>0.7423</double>";

        Debug.WriteLine("Method1: {0}", Method1(xml));
        Debug.WriteLine("Method2: {0}", Method2(xml));
        Debug.WriteLine("Method3: {0}", Method3(xml));
    }

    private static double Method1(string xml)
    {
        var xdoc = XDocument.Parse(xml);
        var doubleStr = xdoc.Root.Value;
        var doubleValue = double.Parse(doubleStr, CultureInfo.InvariantCulture);
        return doubleValue;
    }

    private static double Method2(string xml)
    {
        var xmlDoc = new XmlDocument();
        xmlDoc.LoadXml(xml);
        return double.Parse(xmlDoc.FirstChild.InnerText, CultureInfo.InvariantCulture);
    }

    private static double Method3(string xml)
    {
        var doubleStr = xml.Substring(
            xml.IndexOf(">") + 1,
            xml.IndexOf("</") - xml.IndexOf(">") - 1
            );

        return double.Parse(doubleStr, CultureInfo.InvariantCulture);
    }
}
内部类程序
{
私有静态void Main(字符串[]args)
{
var xml=“0.7423”;
WriteLine(“Method1:{0}”,Method1(xml));
WriteLine(“Method2:{0}”,Method2(xml));
WriteLine(“Method3:{0}”,Method3(xml));
}
私有静态双方法1(字符串xml)
{
var xdoc=XDocument.Parse(xml);
var doubleStr=xdoc.Root.Value;
var doubleValue=double.Parse(doubleStr,CultureInfo.InvariantCulture);
返回双值;
}
私有静态双方法2(字符串xml)
{
var xmlDoc=新的XmlDocument();
LoadXml(xml);
返回double.Parse(xmlDoc.FirstChild.InnerText,CultureInfo.InvariantCulture);
}
私有静态双方法3(字符串xml)
{
var doubleStr=xml.Substring(
xml.IndexOf(“>”)+1,
xml.IndexOf(“”-1
);
返回double.Parse(doubleStr,CultureInfo.InvariantCulture);
}
}

未经测试,但我认为这是一个好方法

XmlDocument doc = new XlmDocument();
doc.Load("path");
XmlNode root = doc.DocumentElement.InnerText

您可以通过属性访问文档的根元素:

double d = (double)XDocument.Load(path_to_xml).Root;
但在这种情况下,您甚至不需要创建文档。您可以创建以下元素:

double d = (double)XElement.Load(path_to_xml);

花了我一段时间,但比我想象的要简单。我是这样做的:

            var xelement = XElement.Parse(outputtext);
            rate = (double)xelement;

谢谢大家的帮助/建议

每次我尝试某个内容时,它都返回一个空值。
您能告诉我们您尝试了什么吗?请发布XML内容,因为不适合您的内容适合我。以下是您可以找到XML文档的web链接: