我正在尝试使用以下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>
由于
答案 0 :(得分:2)
在处理字符串中的引号时,您需要采取特殊步骤,因为插入任何引号将使编译器认为您正在结束或开始新字符串。
使用\"
转义序列来显示编译器您要插入引号而不是字符串的结尾,或@
符号并使用2个双引号({{1 }})
""
或
nodeList = root.SelectNodes(@"/moviedb/movie[genres=""Thriller""]");