Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#XML搜索节点值_C#_Xml_String_Nodes - Fatal编程技术网

C#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

我有一个以下格式的XML文档:

<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
)开始。你的问题肯定与本文类似: