<?xml version="1.0" encoding="utf-8" ?>
<Entity name="A" keytype="B">
<table name="Person">
<columns name="Columns">
<Column Name="PersonID" AttrName="ID"  />
<Column Name="ParentID" AttrName="FuID" />
                  </columns>
         </table>
</Entity>
------------------------
try:XmlDocument doc=new XmlDocument();
doc.Load("xmlfile");XmlNodeList nodes=doc.SelectNodes("/Column");
foreach(XmlNode node in nodes)
  Console.WriteLine(node.Attributes["AttrName"]);----------------
上面代码没测试

解决方案 »

  1.   

    不好意思,上面有的地方写错了,应该是:XmlNodeList nodes=doc.SelectNodes("//Column");
      

  2.   

    用xpath的navigator就可以啊
    主要是path要写对。
      

  3.   

    怎么会有这个提示呢:'OperateXML.Class1.m_xmlDocument' denotes a 'field' where a 'class' was expectednamespace OperateXML
    {
    /// <summary>
    /// Summary description for Class1.
    /// </summary>
    class Class1
    {
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    /// 
    public XmlDocument m_xmlDocument = new XmlDocument(); [STAThread]
    static void Main(string[] args)
    {
    //
    // TODO: Add code to start application here
    //
    m_xmlDocument.Load(@"D:\code\C#\OperateXML\OperateX");
    XmlNodeList nodes=m_xmlDocument.SelectNodes("/Column");
    foreach(XmlNode node in nodes)
    {
    Console.WriteLine(node.Attributes["AttrName"]);
    }

    }
    }
    }
    谢谢
      

  4.   

    to lyhold(让你飞):
    能不能给出代码来,我是新手学习一下,谢谢
      

  5.   

    补充:
    Console.WriteLine(node.Attributes["AttrName"].Value.ToString());
      

  6.   

    我不是说改了下面这个吗,楼主没看到啊:XmlNodeList nodes=m_xmlDocument.SelectNodes("//Column");是//不是/。再加上楼上说的,
      

  7.   

    在static void Main函数中是不能调用外部的变量的。把XmlDocument m_xmlDocument = new XmlDocument();放在mian函数中:XmlDocument m_xmlDocument = new XmlDocument();
    m_xmlDocument.Load(@"D:\code\C#\OperateXML\OperateX");
    XmlNodeList nodes=m_xmlDocument.SelectNodes("//Column");
    foreach(XmlNode node in nodes)
    Console.WriteLine(node.Attributes["AttrName"].Value.ToString());
      

  8.   

    读出来了,谢谢 BearRui!!
    但是我想去其中的一个,该怎么做呢?
      

  9.   

    读其中一个比如str1 = "ID",怎么做呢?
      

  10.   

    if(node.Attributes["AttrName"].Value.ToString().ToLower()=="id")
    {
    处理就OK了!!
    }
      

  11.   

    读其中一个比如str1 = "ID",怎么做呢?
    ----------------------------------------
    try:XmlNode node=m_xmlDocument.SelectNodes("//Column[@AttrName='ID']");
    Console.WriteLine(node.Attributes["AttrName"].Value.ToString());
      

  12.   

    to BearRui(孤熊 | 爱情!它把我给忘了!):
    现在并不知道AttrName里面的内容,就是要把它的每一项都读出来,分别付给一个字符串型的变量,所以上面的方法不可行
      

  13.   

    XmlNodeList nodes=doc.SelectNodes("//Column");
    foreach(XmlNode node in nodes)
      Console.WriteLine(node.Attributes["AttrName"].Value.ToString());
    -----------------------------
    这个就是循环显示AttrName里面的全部内容啊
      

  14.   

    呵呵,这样是读出来了,可是还要分别付给一个字符串型的变量,所以这样不行,能不能把XML读到一个哈希表里面,ht[0][1],ht[1][1]...?
      

  15.   

    最好是一一对应的关系,比如PersonID对应的AttrName是"ID",也就是说根据Name找到对应的AttrName,该怎么做呢?