C# 如何访问特定XMLnode的innerText

C# 如何访问特定XMLnode的innerText,c#,xml,c#-2.0,xmlnode,C#,Xml,C# 2.0,Xmlnode,嗨 我有以下XML片段: <Customer AccountNumber="4"> <CustomerInfo> <firstName>Andrew</firstName> <lastName>Walker</lastName> </CustomerInfo> <Transactions> <AccountBalance>59

嗨 我有以下XML片段:

  <Customer AccountNumber="4">
    <CustomerInfo>
      <firstName>Andrew</firstName>
      <lastName>Walker</lastName>
    </CustomerInfo>
    <Transactions>
      <AccountBalance>595848584.4</AccountBalance>
    </Transactions>
  </Customer>
当我在调试器中查看
searchNode
时,我可以在results视图元素[0]中看到,该元素具有您期望的
localName
CustomerInfo
。因此,在调试器中,名字具有以下路径:

searchNode -> [0].[0].[0].value
这有意义吗

有没有更好的办法?(没有林克)? 抱歉,如果有什么不清楚的地方…现在是凌晨2:30!让我知道,我会更好地解释自己。
谢谢

试试XPath。。像这样的方法应该会奏效:

string firstName = String.Empty;

var xmlNode = doc.SelectSingleNode(String.Format("//Customer[@AccountNumber='{0}']/CustomerInfo/firstName", _AccNumber));
if (xmlNode != null)
    firstName = xmlNode.InnerText;

我认为xpath非常复杂,所以最好使用GetElementsByTagName函数

XmlDocument doc = new XmlDocument();
        doc.Load(@"sample.xml");
        XmlNodeList firstNameNodes =  doc.GetElementsByTagName("firstName");
        foreach (XmlNode node in firstNameNodes)
        {
            string firstName =  node.InnerText;
        }

你为什么不使用linq?linq是为这样的事情而设计的…@Pauli:如果他使用的是.NET2.0,linq是不可用的。是的,但是让我们把这个问题重新标记为2.0:)
XmlDocument doc = new XmlDocument();
        doc.Load(@"sample.xml");
        XmlNodeList firstNameNodes =  doc.GetElementsByTagName("firstName");
        foreach (XmlNode node in firstNameNodes)
        {
            string firstName =  node.InnerText;
        }