我正在编写一个c#代码,需要我解析一个xml文件。我需要的陈述是
XmlDocument xmlt = new XmlDocument();
xmlt.Load(XMLFile1.xml");
XmlNode node = xmlt.SelectSingleNode("//abc/data[@name='xyz']/value");
其中abc是根节点。 我正在搜索数据属性@name以匹配xyz,如果不是硬编码xyz我应该怎么做我需要一个变量,比如name_var。我基本上需要一个执行该功能的代码,以便我可以将@ name = name_var而不是xyz。
name_var在c#代码
中有所不同答案 0 :(得分:2)
据我所知,SelectNodes
和SelectSingleNode
方法不提供重载以提供一些变量分辨率,所以你所能做的就是构造一个字符串,例如。
string name = "xyx";
XmlNode node = xmlt.SelectSingleNode(string.Format("abc/data[@name = '{0}']/value", name));
当name
值包含单引号'
字符时,该方法会中断。如果您需要在XPath中使用变量分辨率,那么请查看XPathNavigator,它可以通过一些努力来实现:http://msdn.microsoft.com/en-us/library/vstudio/dd567715%28v=vs.100%29.aspx。