我有一个XML文档,格式如下:
<forecast>
<forecastday>
<title>monday</title>
<fcttext>Sunny.</fcttext>
</forecastday>
<forecastday>
<title>tuesday</title>
<fcttext>Clear</fcttext>
</forecastday>
标题节点根据今天的日期更改文本(预测下一个x天数)。
我创建了一个文本框,并对文本进行了排序,以查找输入日期的名称,并将其传递给字符串。
我的问题是,如何使用字符串的值(例如:“monday”)来对应节点并从该节点获取值。
答案 0 :(得分:1)
查看XPath表达式(http://www.w3schools.com/xpath/)以搜索和解析XML。
要搜索标题为“星期二”的预测日的fcttext,您将使用以下XPath表达式:
//forecastday[title='tuesday']/fcttext
答案 1 :(得分:0)
您可以使用此代码获取它。
string xml = @"<forecast>
<forecastday>
<title>monday</title>
<fcttext>Sunny.</fcttext>
</forecastday>
<forecastday>
<title>tuesday</title>
<fcttext>Clear</fcttext>
</forecastday></forecast>";
string day = "tuesday";
XDocument xDoc = XDocument.Parse(xml);
string value = xDoc.XPathSelectElement(String.Format("//forecastday[title='{0}']/fcttext", day)).Value;
将day
属性的值替换为组合框中的值。
答案 2 :(得分:0)
假设您的XML内容包含string
变量。
var xDoc = XDocument.Parse(input);
var weather = (string)xDoc.Root
.Elements("forecastday")
.First(x => (string)x.Element("title") == "monday")
.Element("fcttext");
顺便说一句。您的示例XML错过了</forecast>
结束标记。