C# 如何在xml中获取根元素的值
我正在尝试制作一个WindowsRT程序,但我似乎不知道如何获取根元素的值。xmldocument仅包含: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
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链接: