У меня есть следующий фрагмент кодаВыберите количество данных на основе конкретного узла
XmlDocument docu = new XmlDocument();
docu.Load(file);
XmlNodeList lst = docu.GetElementsByTagName("name");
foreach (XmlNode n in lst)
{
string text = n.InnerText;
var types = doc.Element("program").Element("program-function").Element("function").Descendants("type").Where(x => x.Value == text).Select(c => c.Value).ToArray();
}
мой XML выглядит следующим образом
<program>
<program-function>
<function>
<name>add</name>
<return-type>double</return-type>
<params>
<type>double</type>
<type-value>a</type-value>
<type>double</type>
<type-value>b</type-value>
<type>string</type>
<type-value>c</type-value>
</params>
<body> return a + b + c; </body>
</function>
<function>
<name>test</name>
<return-type>int</return-type>
<params>
<type>double</type>
<type-value>a</type-value>
<type>double</type>
<type-value>b</type-value>
</params>
<body> return a + b; </body>
</function>
</program-function>
</program>
мне нужно, чтобы иметь возможность получить количество <type>
для каждый <name>
результат для дополнения должно быть 3 = types.count() = 3
результат для испытаний должно быть 2 = types.count() = 2
любой совет?
EDIT: Если я хочу получить каждое значение внутри types
? то есть. add
должно содержать a
, b
, c
и test
должно содержать a
, b
. Очень хотелось бы, чтобы хранить его в массив для облегчения поиска
Что делать, если я хочу получить каждое значение внутри 'types'? то есть. 'add' должен содержать' a', 'b', c' и' test' должен содержать 'a',' b'. хотел бы сохранить его в массиве для облегчения поиска. – user2248001
@ user2248001 Я обновил ответ. Но в следующий раз задайте полный вопрос и не продлевайте его комментарии ... Если вы хотите, чтобы массив заменил 'ToList' на 'ToArray' – I4V
, я также сделаю редактирование в вопросе – user2248001