C#中的初学者XPath表达式错误

时间:2014-05-04 00:47:29

标签: c# xml regex xpath

我正在尝试使用以下XPath表达式:

nodeList = root.SelectNodes("/moviedb/movie[genres="Thriller"]");
nodeList = root.SelectNodes("/moviedb/movie[contains(genres, "+ ElementValue +")]");

其中ElementValue是用户输入值

对于第一行我会收到如下错误:

  

错误4)预期
  错误6无效的表达式术语')'

第二个表达式返回0

在我在c#中使用这个表达式之前,我确实在线测试了它们并且它们有效。 我的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>

由于

1 个答案:

答案 0 :(得分:2)

在处理字符串中的引号时,您需要采取特殊步骤,因为插入任何引号将使编译器认为您正在结束或开始新字符串。

使用\"转义序列来显示编译器您要插入引号而不是字符串的结尾,或@符号并使用2个双引号({{1 }})

""

nodeList = root.SelectNodes(@"/moviedb/movie[genres=""Thriller""]");