SelectSingleNode, как написать запрос xpath, используя строковую переменную?

Привет у меня есть 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>

И я пытаюсь получить значение "Ключа". Но проблема в том, что дочерний узел (ключ) определяется динамически в коде 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, чтобы я мог получить правильное значение??

1 ответ

Решение

Если вы ищете дочерние узлы "*" скорее всего сработает. Или просто получить все дочерние узлы через XmlNode.ChildNodes и схватить Value или же InnerText,

Другие вопросы по тегам