c# - XML XPath 问题

标签 c# xml xpath

我的 XML 文件如下所示,我试图在我的 C Sharp 代码中让它只根据所选类(class)名称的名称填充组合框。因此,例如,如果他们在类(class)组合框中选择 XML Programming,它将仅在问题组合框中显示 XML Programming 的问题。为了完成这个,我的 XPath 需要是什么样子的?任何帮助将不胜感激。

if (comboBoxCourse.SelectedItem.ToString() == selectNode.InnerText )
{
    try
    {
        XmlNodeList loadQuestions = loadDoc.SelectNodes("//Course/Questions");

        foreach (XmlNode xml in loadQuestions)
        {
            if (comboBoxCourse.SelectedItem.ToString() == selectNode.InnerText)
                comboBoxQuestions.Items.Add(xml.InnerText);
            else
                continue;
        }
    }

    catch (XmlException ex)
    {
        MessageBox.Show(ex.ToString());
    }
}
<?xml version="1.0" encoding="utf-8" ?>
<Courses>
    <Course>
        <Name>Direct X Programming</Name>
        <Professor>Michael Feeney</Professor>
        <Questions>Are you a Ninja</Questions>
        <Questions>What version of Direct X do we use?</Questions>
    </Course>
    <Course>
        <Name>XML Programming</Name>
        <Professor>Michael Feeney</Professor>
        <Questions>Are you an XML Ninja?</Questions>
        <Questions>What does XML stand for?</Questions>
    </Course>
    <Course>
        <Name>Windows GUI</Name>
        <Professor>Leanne Wong</Professor>
        <Questions>What is a treeview?</Questions>
        <Questions>What is a database?</Questions>
    </Course>
</Courses>

最佳答案

我会改用 LINQ to XML:

doc.Root.Elements()
   .Where(c => c.Element("Name").Value == "Windows GUI")
   .Elements("Questions")

但是如果你真的想使用 XPath,它看起来像这样:

/Courses/Course[Name = 'Windows GUI']/Questions

不过在构造查询时要小心,因为您必须对用户的字符串进行一些转义。

关于c# - XML XPath 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6485592/

相关文章:

c# - 将面板置于前面或更改可见性后,Application.Run 出现 ArgumentException

c# - 如何捕获容器中的超链接单击事件 - 松散耦合的方式?

c# - NGit rebase 创建新提交

c++ - 尝试使用 boost 读取 xml 时出现空指针

javascript - Cypress.screenshot 停电 svg 元素

xml - 使用“。” XPath表达式中的(点或句点)

c# - 在sql server中从半径中查找多边形列表

python - 在Python中解析XML

xml - weblogic中config.xml被删除如何排查

java - 我可以从多个线程安全地查询带有 xpath 表达式的 DOM 文档吗?