我正在尝试制作一个Windows RT程序,而我似乎无法弄清楚如何获取根元素的值。 xmldocument仅包含:
<double>0.7423</double>
如何使用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总是返回一个空值。
答案 0 :(得分:1)
试试这个
string xml = "<double>0.7423</double>";
var document = XDocument.Parse(xml);
var doubleValue = document.Descendants("double").FirstOrDefault().Value;
答案 1 :(得分:1)
您可以通过Root属性访问文档的根元素:
double d = (double)XDocument.Load(path_to_xml).Root;
但在这种情况下,您甚至不需要创建文档。您可以创建元素:
double d = (double)XElement.Load(path_to_xml);
答案 2 :(得分: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);
}
}
答案 3 :(得分:0)
未经测试,但这是我认为的好方法
XmlDocument doc = new XlmDocument();
doc.Load("path");
XmlNode root = doc.DocumentElement.InnerText
答案 4 :(得分:0)
我花了一段时间,但它比我想象的要简单。我是这样做的:
var xelement = XElement.Parse(outputtext);
rate = (double)xelement;
感谢大家的帮助/建议!