C# count返回xpath中的所有xml节点

C# count返回xpath中的所有xml节点,c#,xpath,C#,Xpath,我试图使用xpath过滤出一个xml文档,并计算包含给定字符串的节点数。 这是我的密码 string ElementValue = Action nodeList = root.SelectNodes(@"/moviedb/movie[contains(genres, "+ ElementValue +")]"); return nodeList.Count; 和XML的一部分 <moviedb> <movie>

我试图使用xpath过滤出一个xml文档,并计算包含给定字符串的节点数。 这是我的密码

    string ElementValue = Action
    nodeList = root.SelectNodes(@"/moviedb/movie[contains(genres, "+ ElementValue +")]");
                return nodeList.Count;
和XML的一部分

    <moviedb>
<movie>
    <imdbid>tt2226321</imdbid>
    <genres>Thriller</genres>
    <languages>English</languages>
    <country>USA</country>
    <rating>8</rating>
    <runtime>155</runtime>
    <title>The Dark Knight</title>
    <year>2014</year>
  </movie>
  <movie>
    <imdbid>tt1959490</imdbid>
    <genres>Action,Adventure,Drama</genres>
    <languages>English</languages>                                        
    <country>USA</country>
    <rating>6.5</rating>
    <runtime>138</runtime>
    <title>Noah</title>
    <year>2014</year>
  </movie>
</moviedb>

tt2226321
惊悚片
英语
美国
8.
155
黑暗骑士
2014
tt1959490
动作、冒险、戏剧
英语
美国
6.5
138
诺亚
2014
我猜这是xpath包含表达式的东西。当我使用完全匹配语法时,一切都正常工作


再次感谢

尽可能在XPath中使用单引号,以简化您的生活:

nodeList = root.SelectNodes(@"/moviedb/movie[contains(genres, '"+ ElementValue +"')]");
或者,您可以使用方法以更直观的方式将变量中的值连接到单个字符串结果中(特别是当您有许多变量要“注入”到字符串时):


检查您前面的问题,并比较问题之间的XPath结果。。。提示:引用。。。双引号。。。单引号。。。。要回答此问题,请确保在示例中添加行
string ElementValue={real value here}
var xpath = String.Format("/moviedb/movie[contains(genres, '{0}')]", ElementValue);
nodeList = root.SelectNodes(xpath);