Xml 使用xpath从子节点获取属性值

Xml 使用xpath从子节点获取属性值,xml,xpath,Xml,Xpath,我试图根据从列表框中选择的父节点的名称获取子节点的节点属性 问题出在Xpath字符串“//Class[@Name='”+curItem+“']/Entity”中。当我将变量替换为属性名称(ECMInstruction)时,它会正确显示,但使用变量时则不会 这是XML文件 <?xml version="1.0" encoding="utf-8"?> <Root> <Class Name="ECMInstruction" Style="Top"> &l

我试图根据从列表框中选择的父节点的名称获取子节点的节点属性

问题出在Xpath字符串“//Class[@Name='”+curItem+“']/Entity”中。当我将变量替换为属性名称(ECMInstruction)时,它会正确显示,但使用变量时则不会

这是XML文件

<?xml version="1.0" encoding="utf-8"?>
<Root>
  <Class Name="ECMInstruction" Style="Top">
    <Entity Id="1" Name="DocumentInformation" />
  </Class>
  <Class Name="dfgfggfdg" Style="Top">
    <Entity Id="1" Name="dfgfgfdgd" />
  </Class>

那么这个变量很可能并不完全包含您所认为/期望的内容。在将
curItem
的“ECMInstruction”
进行比较之前,您是否检查过它?是的,我当然检查过。变量contais的名称是,这些值之间必须存在差异,否则程序的行为就不会有差异。你怎么查的?通过将值与代码进行比较,或者仅通过查看值的打印表示形式?您是对的,谢谢!!
private void dcLisT_SelectedIndexChanged(object sender, EventArgs e)
{
    //EntityList.Items.Clear();
    XmlDocument document = new XmlDocument();
    document.Load("sample.xml");
    String curItem = dcList.SelectedItem.ToString();
    XmlNodeList nodes = document.DocumentElement.SelectNodes("//Class[@Name='"+curItem+"']/Entity");

    foreach(XmlNode x in nodes){
        String EntityID=(x.Attributes["Id"].Value);
        String EntityName = (x.Attributes["Name"].Value);
        EntityList.Items.Add("Entity ID #"+EntityID+" "+EntityName);
    }          

}