C#XML搜索节点值
我有一个以下格式的XML文档:C#XML搜索节点值,c#,xml,string,nodes,C#,Xml,String,Nodes,我有一个以下格式的XML文档: <forecast> <forecastday> <title>monday</title> <fcttext>Sunny.</fcttext> </forecastday> <forecastday> <title>tuesday</title> <fcttext>C
<forecast>
<forecastday>
<title>monday</title>
<fcttext>Sunny.</fcttext>
</forecastday>
<forecastday>
<title>tuesday</title>
<fcttext>Clear</fcttext>
</forecastday>
星期一
晴朗的
星期二
清楚的
标题节点根据今天的日期(它是对未来x天的预测)更改文本
我创建了一个文本框,对文本进行排序以查找输入日期的名称,并将其传递到字符串中
我的问题是,如何使用字符串的值(比如:“monday”)对应于节点并从该节点获取值。查看XPath表达式()以搜索和解析XML 要搜索标题为“星期二”的forecastday的fcttext,可以使用以下XPath表达式:
//forecastday[title='tuesday']/fcttext
您可以使用此代码获得它
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;
stringxml=@”
星期一
晴朗的
星期二
清楚的
";
string day=“星期二”;
XDocument xDoc=XDocument.Parse(xml);
string value=xDoc.XPathSelectElement(string.Format(“//forecastday[title='{0}']]/fcttext”,day)).value;
将
day
属性的值替换为组合框中的值。假设XML内容中有字符串
变量
var xDoc = XDocument.Parse(input);
var weather = (string)xDoc.Root
.Elements("forecastday")
.First(x => (string)x.Element("title") == "monday")
.Element("fcttext");
顺便说一句,您的示例XML缺少结束标记。解析XML,获得正确的日期,按照您的意愿执行。从解析(
XDocument.Parse
)开始。你的问题肯定与本文类似: