1

我正在编写要求我解析 xml 文件的 ac# 代码。我需要的声明是

  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# 代码中有所不同

4

1 回答 1

2

据我所知,SelectNodesandSelectSingleNode方法不提供重载来提供一些变量解析,所以你所能做的就是构造一个字符串,例如

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

于 2013-01-02T09:40:42.450 回答