0

こんにちは私は異なる名前空間を使用するxmlファイル(実際にはmsbuildファイルです)を持っています

<?xml version="1.0" ?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup Condition="'$(key)'=='1111'">
          <Key1>Value1</Key1>
          <Key3>Value3</Key3>
    </PropertyGroup>
    <PropertyGroup Condition="'$(key)'=='2222'">
          <Key2>Value2</Key2>
          <Key4>Value4</Key4>
    </PropertyGroup>
</Project>

そして、Iamは「Key」の値を取得しようとしています。ただし、問題は、子ノード(キー)がc#コードで動的に決定されることです。したがって、xpathクエリに子名を追加することはできません。しかし、子ノードの名前を持つ文字列変数があります

XmlDocument xml = new XmlDocument();
xml.Load("ref.props");        
XmlNamespaceManager nsmgr = new XmlNamespaceManager(xml.NameTable);
nsmgr.AddNamespace("ms", "http://schemas.microsoft.com/developer/msbuild/2003");

XmlNode platform_node

 = xml.SelectSingleNode("/ms:Project/ms:PropertyGroup[contains(@Condition, '1111')]", nsmgr);

string child_node_name = get_name();
XmlNode child = platform_node.SelectSingleNode(???);

次に、正しいプロパティグループを取得した後、正しい値を取得できるようにxpathクエリを作成するにはどうすればよいですか?

4

1 に答える 1

0

子ノードを探している場合は、"*"おそらく機能します。または、またはを介してすべての子ノードを取得XmlNode.ChildNodesValueますInnerText

于 2013-02-05T02:01:08.383 に答える