Using Xmldocument.selectnodes (String XPath) is a convenient way to write XPath, but it takes a bit of effort to do it,
and today we found that there was no case-insensitive function in XPath1.0. So it's hard to do the following query
<root>
<aaa>
<bbb>
<CCC>ddd</CCC>
<bbb>
<CCC> gen</ccc>//may also be Gen, Gen, Gen
</bbb>
</aaa>
<aaa>
<bbb>
<ccc>dfe</ccc>
<BBB>
<CCC> gen</ccc>
</bbb>
</aaa
</root>
Find all the CCC node value Gen (case-insensitive) AAA node, if there is no later XPath, to do the above query, very complex, if you can use XPath translate function, it is easy
XPath = @ "//root/aaa/bbb/[translate (CCC, ' abcdefghijklmnopqrstuvwxyz ', ' abcdefghijklmnopqrstuvwxyz ')] = ' GEN '/parent ::*"
XmlNodeList nodelist = Xmldoc.selectnodes (XPath);
XPath means to capitalize all the value of the//ROOT/AAA/BBB/CCC node and then compare it to ' GEN ' and then return to the AAA node.