我不得不编写一个XPath查询来根据问题ID提取问题的答案。问题ID动态传递给查询。我不能使用LINQ,因为解决方案是在.NET 2.0中。请在下面找到XML文件
<?xml version="1.0" encoding="utf-8" ?>
<Questionaire>
<question id="1">
<answer>1</answer>
<correctAnswer>Text</correctAnswer>
</question>
<question id="2">
<answer>2</answer>
<correctAnswer>Text</correctAnswer>
</question>
</Questionaire>
我是XPath的新手,发现很难理解它。
非常感谢提前。
答案 0 :(得分:3)
您可以使用XmlDocument类和SelectSingleNode方法来执行XPath查询。您可以查看following article的示例。在您的情况下,XPath查询将是Questionaire/question[id='1']
的行,其中id当然可以变量,以便获取相应的节点。找到与您的搜索条件对应的<question>
节点后,您可以导航到其子节点。
答案 1 :(得分:0)
您的XPath表达式可以像这样动态生成:
myExpression = string.Format("/*/*[id='{0}']/answer", theId);
然后,根据表示XML文档的对象,您需要调用以下方法之一:Select()
,SelectNodes()
,SelectSingleNode()
,Evaluate()
。
阅读有关XmlDocument
,XPathDocument
,XPathNavigator
和XPathExpression
的相应方法的MSDN文档。