1

私は xml ファイルを解析する必要がある ac# コードを書いています。私が必要とする声明は

  XmlDocument xmlt = new XmlDocument();
  xmlt.Load(XMLFile1.xml");
  XmlNode node = xmlt.SelectSingleNode("//abc/data[@name='xyz']/value");

ここで、abc はルート ノードです。xyz と一致するデータ属性 @name を検索しています。xyz をハードコーディングする代わりに、name_var などの変数が必要な場合はどうすればよいですか。基本的に、関数を実行するコードが必要なので、xyz の代わりに @name=name_var を入力できます。

name_var は c# コードで変化します

4

1 に答える 1

2

私が知る限り、メソッド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

于 2013-01-02T09:40:42.450 に答える