XPathSelectElements,其中值包含引号

时间:2013-09-23 11:48:48

标签: c# xml xpath

您好我已经查看了几个答案,似乎没有任何问题可以解决我的问题(或者我可能做错了一些事情)我有以下的xml并且想要选择这个'不会伤害测验中的元素。

这是我试过的代码

 xd = XDocument.Load(XmlFile);
 var node = xd.XPathSelectElements("/Math/Quiz[QuizTitle ='This 'wont hurt']"); 

它没有用,因为它说我有一个无效的令牌,我查了一下,发现它是'导致问题,但没有一个逃逸方法似乎工作,我找到了,想法或帮助将花费在决定提出问题之前,已经有很多时间处理这个愚蠢的问题

XML

 <Math>
  <Quiz>
    <QuizTitle>This 'wont hurt</QuizTitle>
    <Questions>20</Questions>
    <Time>15/</Time>
  </Quiz>
    <Quiz>
    <QuizTitle>Test</QuizTitle>
    <Questions>1</Questions>
    <Time>14/</Time>
  </Quiz>
 </Math>

1 个答案:

答案 0 :(得分:1)

使用以下XPath

xd.XPathSelectElements("/Math/Quiz[QuizTitle=\"This 'wont hurt\"]")

不同之处在于,它使用"代替'来设置文字内容,这就是为什么您可以在文本中使用'而不会出现任何问题。

返回您需要的内容:

<Quiz>
  <QuizTitle>This 'wont hurt</QuizTitle>
  <Questions>20</Questions>
  <Time>15/</Time>
</Quiz>