2013-09-23 4 views
0

Привет, я просмотрел несколько ответов, и ни один из них не работает для моей проблемы (или может быть, я сделал что-то неправильно) У меня есть следующий xml и хотел бы выбрать элементы в этом «не повредит Викторине.XPathSelectElements, где значение содержит quaote

Это код, который я попытался

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> 
+0

'/ Математика/Quiz [QuizTitle = "Это \' обыкновение больно"]? –

ответ

1

Используйте следующие XPath:

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

Разница в том, что он использует " вместо ', чтобы установить содержание текста, и именно поэтому вы можете использовать ' в тексте без каких-либо проблем.

Возвращает то, что вам нужно:

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

Спасибо, что работала на 100%, теперь мне просто нужно взглянуть на создание функции, которая позаботится об этом для меня или может быть просто построителем строк. – justinf

Смежные вопросы