0

我正在尝试制作一个 Windows RT 程序,但我似乎无法弄清楚如何获取根元素的值。xmldocument 仅包含:

<double>0.7423</double>

我将如何使用 c# 和窗口存储获取值“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 总是返回一个空值。

4

5 回答 5

1

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

double d = (double)XDocument.Load(path_to_xml).Root;

但在这种情况下,您甚至不需要创建文档。您可以创建元素:

double d = (double)XElement.Load(path_to_xml);
于 2013-09-25T07:40:24.837 回答
1

尝试这个

string xml = "<double>0.7423</double>";
var document = XDocument.Parse(xml);
var doubleValue = document.Descendants("double").FirstOrDefault().Value;
于 2013-09-25T07:04:20.917 回答
0

Not tested, but it's the good way I think

XmlDocument doc = new XlmDocument();
doc.Load("path");
XmlNode root = doc.DocumentElement.InnerText
于 2013-09-25T07:38:01.373 回答
0

很明显:

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);
    }
}
于 2013-09-25T07:34:31.460 回答
0

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

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

谢谢大家的帮助/建议!

于 2013-09-25T17:36:29.257 回答