c#中初学者XPath表达式错误

本文关键字:表达式 错误 XPath 初学者 | 更新日期: 2023-09-27 18:01:45

我试图使用以下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>

谢谢

c#中初学者XPath表达式错误

当处理字符串中的引号时,你需要采取特殊的步骤,因为插入任何引号都会使编译器认为你是在结束或开始一个新字符串

使用'"转义序列向编译器显示您想要插入引号而不是字符串的末尾,或者使用@符号并使用2双引号("")

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

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