XPath查询C#以动态拉出节点
我必须编写一个XPath查询,根据问题id提取问题的答案。问题id将动态传递给查询。我不能使用LINQ,因为解决方案在NET2.0中。请在下面找到XML文件XPath查询C#以动态拉出节点,c#,xml,xpath,C#,Xml,Xpath,我必须编写一个XPath查询,根据问题id提取问题的答案。问题id将动态传递给查询。我不能使用LINQ,因为解决方案在NET2.0中。请在下面找到XML文件 <?xml version="1.0" encoding="utf-8" ?> <Questionaire> <question id="1"> <answer>1</answer> <correctAnswer>Text</correctAn
<?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>
1.
正文
2.
正文
我是XPath的新手,很难理解它
非常感谢 可以使用类和方法执行XPath查询。您可以查看以下示例。在您的例子中,XPath查询将类似于
Questionaire/question[id='1']
的内容,其中id当然可以是变量,以便获取相应的节点。找到与搜索条件对应的
节点后,您可以导航到其子节点。您的XPath表达式可以这样动态生成:
myExpression = string.Format("/*/*[id='{0}']/answer", theId);
然后,根据表示XML文档的对象,您需要调用以下方法之一:Select()
,SelectNodes()
,SelectSingleNode()
,Evaluate()
阅读MSDN文档,了解
XmlDocument
、XPathDocument
、XPathNavigator
和XPathExpression
@的适当方法,OP希望选择答案,而不是问题。这可以通过计算单个XPath表达式来实现。:)非常感谢所有的贡献。最后我确实更接近于@Dimitre-answer,但在这里找到了他的答案,效果很好。再次感谢你们摇滚!