【问题标题】:XPath variable for searching attribute用于搜索属性的 XPath 变量
【发布时间】:2013-01-02 18:06:31
【问题描述】:

我正在编写需要解析 xml 文件的 c# 代码。我需要的语句是

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

【问题讨论】:

    标签: c# xml xpath


    【解决方案1】:

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

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 2018-08-08
      • 2015-06-20
      • 2015-06-27
      • 1970-01-01
      • 2017-11-27
      相关资源
      最近更新 更多