次のコードがあります
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>
add の結果は 3 = types.count() = 3
test の結果は 2 =types.count() = 2
何かアドバイス?
編集:内部の各値を取得したい場合はtypes
? すなわち。add
、を含む必要がありa
、b
、c
をtest
含む必要がa
ありますb
。簡単に検索できるように配列に保存したい